NumPy 마스터하기: 방법, Ndarray 작업 및 기능 초기화
게시 됨: 2021-01-05Numpy는 고차원 데이터에 대해 고효율 추상 기능으로 수학 및 수치 연산을 수행할 수 있는 Python 패키지입니다. 특정 비즈니스 사용 사례를 위한 머신 러닝 솔루션을 구축하는 동안 전처리가 쉽고 결과를 해석할 수 있는 방식으로 데이터를 변환하는 것이 매우 중요해집니다. Numpy는 모든 관련 기능을 최상의 방법으로 수행할 수 있도록 하는 핵심 라이브러리입니다.
목차
왜 넘파이인가?
Pandas, Matplotlib 및 Scikit-learn과 같은 다른 데이터 과학 라이브러리는 고성능 특성 때문에 Numpy를 기반으로 구축되었습니다. 이 라이브러리는 내장 파이썬 목록 대신 사용되는 ndarray를 제공합니다. Python 목록은 값을 저장하는 데 적합하지만 메모리 및 실행 측면에서 오버헤드를 추가하는 메모리 위치의 포인터를 저장하기 때문에 실행 시간이 늘어납니다.
Numpy는 이미지가 흐림, 색상 변경 및 객체 감지와 같은 다양한 변환을 수행하기 위해 고다차원 행렬로 처리되는 이미지 처리 분야에서 직접 사용됩니다.
모든 데이터 과학 지망자가 알아야 할 중요한 Numpy 기능을 살펴보겠습니다.
- 아래의 모든 함수 코드는 라이브러리를 np 별칭으로 가져왔다고 가정합니다. 즉, numpy를 np로 가져옵니다.
- "배열"이라는 용어는 이 시점 이후에 ndarray를 정의하는 데 사용됩니다.
다양한 초기화 방법
1. 선형 간격
이 함수는 값 범위 내에서 선형 간격 배열을 제공하기 위한 것입니다. np.linspace(start, stop, num) 함수는 start와 stop이 값의 범위를 정의하고 num이 샘플 수를 정의하는 곳에서 균등한 간격의 값을 반환하는 반면 np.arange(start, stop, step)는 다음과 같은 다른 값을 반환합니다. 단계 값.
2. 특정 가치
많은 경우에 1, 0, 단위 또는 상수 값과 같은 값으로 큰 행렬을 초기화할 수 있습니다. 배열의 크기는 튜플로 전달됩니다. Numpy는 다음과 같은 다양한 기능을 통해 이를 용이하게 합니다.
- np.zeros(size): 요소가 0입니다.
- np.ones(size): 요소는 1입니다.
- np.full(size, constant value): 요소는 전달된 상수 값입니다.
- np.eye(size): 대각선 요소는 1이고 나머지는 0입니다. 이것은 항등 행렬입니다.
- np.empty(크기): 빈 행렬
- np.random.random(size): 임의 값 행렬이 지정된 크기로 초기화됩니다.
읽기: Numpy 인터뷰 질문
Ndarray 작업
이 라이브러리의 주요 목적은 서로 다른 배열 간의 효율적인 계산입니다. Numpy는 요소별로 적용되는 거의 모든 유형의 수학 연산 및 조작을 지원합니다. 그 중 일부가 아래에 나열되어 있습니다(같은 크기의 두 배열 A와 B가 임의의 값으로 초기화된다고 가정).
1. 수학
- np.add(A, B): 더하기
- np.subtract(A, B): 빼기
- np.divide(A, B): 나눗셈
- np.multiply(A, B): 곱하기
- np.exp(A): 지수 값
- np.sqrt(A): 제곱근 값
- np.sin(A), cos(A), tan(A): 삼각 값
- np.log(A): 로그 값
- np.percentile(A, 백분위수 필요, 축): 백분위수 값(예: 50)을 전달할 때 함수는 배열의 50번째 백분위수를 반환합니다.
- A.dot(B): 배열의 내적을 반환합니다.
- A == B: 요소별 비교
- np.array_equal(A, B): 배열별 비교
- A.sum(): 모든 요소의 합
- A.min(), max(): 최소값 및 최대값
- A.cumsum(): 배열 요소의 누적 합계
- A.corrcoef(): 상관 계수
2. 조작
- np.transpose(A) 또는 AT: 행렬의 전치
- A.ravel(): 배열을 평평하게 합니다.
- A.reshape(new_shape): 배열의 모양을 변경합니다(여기서 튜플에 넣지 않고 크기를 직접 전달). 새 크기는 다음과 같아야 합니다.
- A.resize(size): 배열의 모양을 임의의 모양으로 변경하고 이 새 모양의 일부가 아닌 다른 요소를 버립니다.
- np.concatenate((A,B), 축=1 또는 0)
- np.vstack((A,B)): 배열을 세로로 쌓습니다(행 방향).
- np.hstack((A,B)): 수평 스택
체크 아웃: Numpy 대 Panda: 차이점 - 2020 - 다른 사람

기타 기능
- np.where(): if-else 문이 필요 없도록 하는 필수 함수입니다. 조건, 조건이 충족되면 값, 그렇지 않으면 값의 3가지 중요한 인수가 필요합니다. 이에 대한 간단한 예는 주어진 임계값을 기반으로 열을 이진화해야 하는 경우일 수 있습니다.
- np.intersect1d(): 이 함수는 두 개의 1차원 배열의 교집합을 반환합니다. 이는 이러한 배열의 공통 값이 이 함수에 의해 반환됨을 의미합니다. 전달된 배열이 1-d가 아니면 평면화됩니다.
- np.allclose(): 흥미로운 기능입니다. 어레이를 비교하는 동안 어느 정도 허용 오차를 가질 수 있거나 유사한 어레이를 발견하려는 상황이 있습니다. 이 함수는 원하는 배열과 허용오차 값을 받습니다. 예를 들어:
- arr1 = np.array([1,2,3,4])
- arr2 = np.array([2,3,4,5])
- np.allclose(arr1, arr2, 0.5) : False를 반환합니다.
- np.allclose(arr1, arr2, 1): True를 반환합니다.
- argmin(), argmax() 및 argsort(): 이름에서 알 수 있듯이 이러한 함수는 각 이름의 인덱스를 반환합니다. A.argmin()은 최소 요소 인덱스를 반환하고 A.argmax()는 반대이며 A.argsort()는 정렬된 배열의 인덱스를 반환합니다. 이러한 함수는 결과가 인덱스에 따라 달라지는 경우에 유용할 수 있습니다.
- np.clip(): 특정 범위의 값을 변환할 때 사용합니다. 예를 들어, 배열의 값이 1에서 30까지이고 다른 값을 잃지 않고 14에서 27 사이의 값을 원하는 경우 이 함수는 19에서 19보다 작은 값을 확장하고 27보다 큰 값을 27로 축소합니다.
결론
numpy 배열에서 작업하는 동안 더 많은 기능이 있지만 가장 많이 사용되는 기능입니다. Pandas 열 또는 시리즈에 적용된 작업은 시리즈가 1차원 ndarray이므로 실제로 ndarray에 있습니다.
Numpy는 특정 알고리즘을 테스트하거나 시나리오를 시뮬레이션하기 위해 가짜 데이터를 생성하는 훌륭한 도구입니다. 이미지가 필요한 연산을 수행하기 위해 다차원 행렬로 변환되는 컴퓨터 비전 애플리케이션이나 신경망 가중치가 이러한 ndarray에 의해 유지되는 딥 러닝에서 광범위하게 사용됩니다.
데이터 과학에 대해 자세히 알아보려면 IIIT-B & upGrad의 데이터 과학 PG 디플로마를 확인하세요. 이 PG 디플로마는 실무 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍, 업계 전문가와의 멘토링, 1- 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.