NumPy 치트 시트
NumPy 시스템은 Python을 위한 오픈 소스 수치 계산 확장 라이브러리입니다. 이 도구는 대규모 행렬을 저장하고 처리하는 데 사용할 수 있으며, Python 자체의 내장 리스트 구조(행렬을 표현하는 데에도 사용 가능)보다 훨씬 효율적입니다.
설명
arr은 NumPy 배열 객체를 나타냅니다.
모듈 임포트
import numpy as np임포트/엑스포트
| np.loadtxt(‘file.txt’) | 텍스트 파일에서 읽기 |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | CSV 파일에서 읽기 |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | 텍스트 파일에 쓰기 |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | CSV 파일에 쓰기 |
배열 생성
| np.array([1,2,3]) | 1차원 배열 |
| np.array([(1,2,3),(4,5,6)]) | 2차원 배열 |
| np.zeros(3) | 길이가 3이고 모든 값이 0인 1차원 배열 |
| np.ones((3,4)) | 모든 값이 1인 3x4 배열 |
| np.eye(5) | 대각선은 1이고 나머지는 0인 5x5 배열 (단위 행렬) |
| np.linspace(0,100,6) | 0에서 100까지 균일하게 간격이 지정된 6개 값의 배열 |
| np.arange(0,10,3) | 0에서 10 미만까지 간격이 3인 값의 배열 (예: [0,3,6,9]) |
| np.full((2,3),8) | 모든 값이 8인 2x3 배열 |
| np.random.rand(4,5) | 0-1 사이의 난수(float)로 구성된 4x5 배열 |
| np.random.rand(6,7)*100 | 0-100 사이의 난수(float)로 구성된 6x7 배열 |
| np.random.randint(5,size=(2,3)) | 0-4 사이의 난수(int)로 구성된 2x3 배열 |
속성 검사
| arr.size | 배열 요소의 총 개수 반환 |
| arr.shape | 배열의 차원(모양) 반환 |
| arr.dtype | 배열에 있는 요소의 데이터 형식 반환 |
| arr.astype(dtype) | 배열 요소 형식을 dtype으로 변환 |
| arr.tolist() | 배열을 리스트로 변환 |
| np.info(np.eye) | np.eye에 대한 문서 확인 |
복사/정렬/모양 변경
| np.copy(arr) | 배열을 새 메모리에 복사 |
| arr.view(dtype) | dtype 형식을 사용하여 배열 요소의 뷰 생성 |
| arr.sort() | 배열 정렬 |
| arr.sort(axis=0) | 배열의 특정 축 정렬 |
| two_d_arr.flatten() | 2차원 배열을 1차원으로 평탄화 |
| arr.T | 배열 전치(행과 열을 바꿈) |
| arr.reshape(3,4) | 데이터를 변경하지 않고 배열의 모양을 3행 4열로 변경 |
| arr.resize((5,6)) | 배열 모양을 5x6으로 변경하고 새 값을 0으로 채움 |
요소 추가/삭제
| np.append(arr,values) | 배열 끝에 값 추가 |
| np.insert(arr,2,values) | 인덱스 2 앞에 배열에 값 삽입 |
| np.delete(arr,3,axis=0) | 배열의 인덱스 3에 있는 행 삭제 |
| np.delete(arr,4,axis=1) | 배열의 인덱스 4에 있는 열 삭제 |
결합/분할
| np.concatenate((arr1,arr2),axis=0) | arr1의 끝에 arr2를 행으로 추가 |
| np.concatenate((arr1,arr2),axis=1) | arr1의 끝에 arr2를 열로 추가 |
| np.split(arr,3) | 배열을 3개의 하위 배열로 분할 |
| np.hsplit(arr,5) | 5번째 인덱스에서 배열을 가로로 분할 |
인덱싱/슬라이싱/하위 집합 생성
| arr[5] | 인덱스 5의 요소 반환 |
| arr[2,5] | 인덱스 [2][5]의 2차원 배열 요소 반환 |
| arr[1]=4 | 인덱스 1의 배열 요소에 값 4 할당 |
| arr[1,3]=10 | 인덱스 [1][3]의 배열 요소에 값 10 할당 |
| arr[0:3] | 인덱스 0,1,2의 요소 반환(2차원 배열의 경우 0,1,2행 반환) |
| arr[0:3,4] | 0,1,2행의 4열 요소 반환 |
| arr[:2] | 인덱스 0,1의 요소 반환(2차원 배열의 경우 0,1행 반환) |
| arr[:,1] | 모든 행의 인덱스 1 요소 반환 |
| arr<5 | 부울 값을 가진 배열 반환 |
| (arr1<3) & (arr2>5) | 부울 값을 가진 배열 반환 |
| ~arr | 부울 배열 반전 |
| arr[arr<5] | 5보다 작은 배열 요소 반환 |
스칼라 연산
| np.add(arr,1) | 각 배열 요소에 1 더하기 |
| np.subtract(arr,2) | 각 배열 요소에서 2 빼기 |
| np.multiply(arr,3) | 각 배열 요소에 3 곱하기 |
| np.divide(arr,4) | 각 배열 요소를 4로 나누기(0으로 나누면 np.nan 반환) |
| np.power(arr,5) | 각 배열 요소를 5제곱하기 |
벡터 연산
| np.add(arr1,arr2) | arr1애 arr2를 요소별로 더하기 |
| np.subtract(arr1,arr2) | arr1에서 arr2를 요소별로 빼기 |
| np.multiply(arr1,arr2) | arr1에 arr2를 요소별로 곱하기 |
| np.divide(arr1,arr2) | arr1을 arr2로 요소별로 나누기 |
| np.power(arr1,arr2) | arr1을 arr2의 거듭제곱으로 요소별로 계산하기 |
| np.array_equal(arr1,arr2) | 배열의 요소와 모양이 같으면 True 반환 |
| np.sqrt(arr) | 배열의 각 요소에 대한 제곱근 |
| np.sin(arr) | 배열의 각 요소에 대한 사인 |
| np.log(arr) | 배열의 각 요소에 대한 자연 로그 |
| np.abs(arr) | 배열의 각 요소에 대한 절대값 |
| np.ceil(arr) | 가장 가까운 정수로 올림 |
| np.floor(arr) | 가장 가까운 정수로 내림 |
| np.round(arr) | 가장 가까운 정수로 반올림 |
통계
| np.mean(arr,axis=0) | 특정 축을 따라 평균 반환 |
| arr.sum() | 배열의 합계 반환 |
| arr.min() | 배열의 최소값 반환 |
| arr.max(axis=0) | 특정 축의 최대값 반환 |
| np.var(arr) | 배열의 분산 반환 |
| np.std(arr,axis=1) | 특정 축의 표준 편차 반환 |
| arr.corrcoef() | 배열의 상관 계수 반환 |