Python 초보자를 위한 NumPy 튜토리얼: 예제를 통해 배우기
NumPy는 무엇입니까? Python?
눔 파이 다음에서 사용할 수 있는 오픈 소스 라이브러리입니다. Python, 수학, 과학, 엔지니어링 및 데이터 과학 프로그래밍에 도움이 됩니다. 수학 및 통계 연산을 수행하는 데 매우 유용한 라이브러리입니다. Python. 다차원 배열 및 행렬 곱셈에 완벽하게 작동합니다. C/와의 통합이 쉽다C++ and Fortran.
모든 과학 프로젝트에서 NumPy는 이를 알 수 있는 도구입니다. N차원 배열, 선형 대수, 난수, 푸리에 변환 등과 함께 작동하도록 구축되었습니다.
NumPy는 다차원 배열과 행렬을 다루는 프로그래밍 언어입니다. 배열과 행렬 외에도 NumPy는 많은 수의 수학 연산을 지원합니다. 이 부분에서는 '에 대한 튜토리얼을 위해 알아야 할 필수 함수를 검토합니다.TensorFlow. '
NumPy를 사용하는 이유는 무엇입니까?
NumPy는 메모리 효율성이 뛰어납니다. 즉, 다른 어떤 라이브러리보다 더 쉽게 액세스할 수 있는 방대한 양의 데이터를 처리할 수 있습니다. 게다가 NumPy는 특히 행렬 곱셈과 재구성 작업에 매우 편리합니다. 게다가 NumPy는 빠릅니다. 실제로 TensorFlow와 Scikit은 NumPy 배열을 사용하여 백엔드에서 행렬 곱셈을 계산하는 방법을 배웁니다.
NumPy를 설치하는 방법
NumPy 라이브러리를 설치하려면 튜토리얼을 참조하세요. 텐서플로우 설치 방법. NumPy는 기본적으로 Anaconda와 함께 설치됩니다.
원격의 경우 NumPy가 설치되지 않았습니다.
Anaconda를 사용하여 NumPy를 설치할 수 있습니다.
conda install -c anaconda numpy
- In Jupyter 공책 :
import sys !conda install --yes --prefix {sys.prefix} numpy
NumPy 가져오기 및 버전 확인
numpy를 가져오는 명령은 다음과 같습니다.
import numpy as np
위 코드는 Numpy 네임스페이스의 이름을 np로 바꿉니다. 이를 통해 "numpy"를 입력하는 대신 Numpy 함수, 메소드 및 속성 앞에 "np"를 붙일 수 있습니다. 이는 numpy 문헌에서 찾을 수 있는 표준 단축키입니다.
설치된 NumPy 버전을 확인하려면 아래 명령을 사용하십시오.
print (np.__version__)
출력:
1.18.0
Python NumPy 배열?
NumPy 배열은 약간 비슷합니다. Python 목록에 있지만 동시에 여전히 매우 다릅니다. 이 주제를 처음 접하는 분들을 위해 그것이 정확히 무엇인지, 어떤 용도로 좋은지 명확히 해보겠습니다.
이름에서 알 수 있듯이 NumPy 배열은 numpy 라이브러리의 중심 데이터 구조입니다. 도서관 이름은 실제로 "Numeric"의 약자입니다. Python” 또는 “수치 Python".
NumPy 배열 만들기
Numpy에서 배열을 만드는 가장 간단한 방법은 다음을 사용하는 것입니다. Python 명부
myPythonList = [1,9,8,3]
np.array 객체를 사용하여 Python 목록을 numpy 배열로 변환합니다.
numpy_array_from_list = np.array(myPythonList)
목록의 내용을 표시하려면
numpy_array_from_list
출력:
array([1, 9, 8, 3])
실제로는 선언할 필요가 없습니다. Python 목록. 작업을 결합할 수 있습니다.
a = np.array([1,9,8,3])
주의사항: Numpy 문서에서는 배열을 생성하기 위해 np.ndarray를 사용한다고 설명합니다. 그러나 이것이 권장되는 방법입니다.
Tuple에서 numpy 배열을 만들 수도 있습니다.
매우 정확한 Opera어레이에 대한 옵션
배열에서 덧셈, 뺄셈, 나눗셈, 곱셈과 같은 수학 연산을 수행할 수 있습니다. 구문은 배열 이름 뒤에 연산(+.-,*,/)을 쓰고 그 뒤에 피연산자를 씁니다.
예:
numpy_array_from_list + 10
출력:
array([11, 19, 18, 13])
이 연산은 numpy 배열의 각 요소에 10을 더합니다.
배열의 모양
배열의 이름 앞에 물체 모양이 붙는 것으로 배열의 모양을 확인할 수 있습니다. 같은 방법으로 dtypes를 사용하여 유형을 확인할 수 있습니다.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
정수는 소수가 없는 값입니다. XNUMX진수로 배열을 생성하면 유형이 부동 소수점으로 변경됩니다.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2차원 배열
"," 쉼표를 사용하여 차원을 추가할 수 있습니다.
대괄호 [] 안에 있어야 합니다.
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3차원 배열
더 높은 차원은 다음과 같이 구성될 수 있습니다.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
목표 | 암호 |
---|---|
배열 생성 | 배열([1,2,3]) |
모양을 인쇄하다 | 배열([.]).모양 |
numpy.zeros()란 무엇입니까?
numpy.zeros() 또는 np.zeros Python 함수는 0으로 가득 찬 행렬을 만드는 데 사용됩니다. numpy.zeros() 의 Python TensorFlow 및 기타 통계 작업의 첫 번째 반복 중에 가중치를 초기화할 때 사용할 수 있습니다.
numpy.zeros() 함수 구문
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() 매개변수
여기
- 셰이프: numpy XNUMX 배열의 모양입니다.
- D 타입: numpy 64으로 된 데이터 유형입니다. 선택 사항입니다. 기본값은 floatXNUMX입니다.
- 주문번호: 기본값은 numpy.zeros()의 필수 행 스타일인 C입니다. Python.
Python numpy.zeros() 예
import numpy as np np.zeros((2,2))
출력:
array([[0., 0.], [0., 0.]])
데이터 유형을 사용한 numpy XNUMX의 예
import numpy as np np.zeros((2,2), dtype=np.int16)
출력:
array([[0, 0], [0, 0]], dtype=int16)
numpy.ones()란 무엇입니까?
np.ones() 함수 1로 가득 찬 행렬을 만드는 데 사용됩니다. numpy.ones() 의 Python TensorFlow 및 기타 통계 작업의 첫 번째 반복 중에 가중치를 초기화할 때 사용할 수 있습니다.
Python numpy.ones() 구문
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() 매개변수
여기
- 셰이프: np.ones의 모양입니다. Python 배열
- D 타입: numpy의 데이터 유형입니다. 선택 사항입니다. 기본값은 float64입니다.
- 주문번호: 기본값은 필수 행 스타일인 C입니다.
Python numpy.ones() 데이터 유형의 2D 배열 예
import numpy as np np.ones((1,2,3), dtype=np.int16)
출력:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape() 함수 Python
Python NumPy 모양 변경 함수는 데이터를 변경하지 않고 배열을 형성하는 데 사용됩니다. 경우에 따라 데이터의 모양을 넓은 것에서 긴 것으로 변경해야 할 수도 있습니다. 이를 위해 np.reshape 함수를 사용할 수 있습니다.
np.reshape() 구문
numpy.reshape(a, newShape, order='C')
여기
a: 모양을 변경하려는 배열
새로운모양: 새로운 욕망이 형성된다
주문번호: 기본값은 필수 행 스타일인 C입니다.
NumPy 재구성의 예
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
출력:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.Flatten() Python
Python NumPy 플래튼 함수는 XNUMX차원 배열의 복사본을 반환하는 데 사용됩니다. Convnet과 같은 일부 신경망을 다룰 때는 배열을 평면화해야 합니다. 이를 위해 np.platten() 함수를 사용할 수 있습니다.
np.Flatten() 구문
numpy.flatten(order='C')
여기
주문번호: 기본값은 필수 행 스타일인 C입니다.
NumPy Flatten의 예
e.flatten()
출력:
array([1, 2, 3, 4, 5, 6])
numpy.hstack()은 무엇입니까? Python?
Numpy.h스택 의 함수입니다 Python 단일 배열을 만들기 위해 입력 배열의 시퀀스를 수평으로 쌓는 데 사용됩니다. hstack() 함수를 사용하면 데이터를 수평으로 추가할 수 있습니다. NumPy에서는 매우 편리한 기능입니다.
hstack을 공부해보자 Python 예를 들어:
예:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
출력:
Horizontal Append: [1 2 3 4 5 6]
numpy.vstack()은 무엇입니까? Python?
Numpy.vstack 의 함수입니다 Python 단일 배열을 만들기 위해 입력 배열의 시퀀스를 수직으로 쌓는 데 사용됩니다. vstack() 함수를 사용하면 데이터를 수직으로 추가할 수 있습니다.
예를 들어 연구해 보겠습니다.
예:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
출력:
Vertical Append: [[1 2 3] [4 5 6]]
NumPy vstack과 hstack을 공부한 후, NumPy에서 난수를 생성하는 예를 알아보겠습니다.
랜덤 생성 Numbers NumPy를 사용하여
가우시안 분포에 대한 난수를 생성하려면 다음을 사용하세요.
numpy.random.normal(loc, scale, size)
여기
- 장소: 평균. 유통의 중심지
- 규모: 표준 편차.
- 크기: 반품 횟수
예:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
그래프로 그리면 분포는 다음 그래프와 유사합니다.
NumPy Asarray 함수
asarray() 함수는 입력을 배열로 변환하려는 경우에 사용됩니다. 입력은 목록, 튜플, ndarray 등이 될 수 있습니다.
구문 :
numpy.asarray(data, dtype=None, order=None)[source]
여기
데이터: 배열로 변환하려는 데이터
dtype: 선택적 인수입니다. 지정하지 않으면 데이터 유형이 입력 데이터에서 유추됩니다.
주문번호: 기본값은 필수 행 스타일인 C입니다. 다른 옵션은 F(Fortan 스타일)입니다.
예:
2개의 행과 1개의 열이 XNUMX로 채워진 다음의 XNUMX차원 행렬을 고려하십시오.
import numpy as np A = np.matrix(np.ones((4,4)))
행렬의 값을 변경하려는 경우에는 변경할 수 없습니다. 그 이유는 복사본을 변경할 수 없기 때문입니다.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
매트릭스는 변경할 수 없습니다. 원본 배열에 수정 사항을 추가하려면 asarray를 사용할 수 있습니다. 세 번째 행의 값을 값 2로 변경하려고 할 때 어떤 변화가 발생하는지 살펴보겠습니다.
np.asarray(A)[2]=2 print(A)
코드 설명 :
np.asarray(A): 행렬 A를 배열로 변환합니다.
[2]: 세 번째 행을 선택합니다.
출력:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
numpy.arange()란 무엇입니까?
numpy.arange() 정의된 간격 내에서 균일한 간격의 값을 포함하는 ndarray 객체를 반환하는 내장 numpy 함수입니다. 예를 들어, 1에서 10까지의 값을 생성하려고 합니다. np.arange()를 사용할 수 있습니다. Python 기능.
구문 :
numpy.arange(start, stop, step, dtype)
Python NumPy 범위 매개변수:
- 스타트: np.arange의 간격 시작 Python 기능.
- 중지: 간격이 종료되었습니다.
- 단계: 값 사이의 간격입니다. 기본 단계는 1입니다.
- D 타입: NumPy의 배열 출력 유형입니다. Python.
예:
import numpy np np.arange(1, 11)
출력:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
예:
이 NumPy 범위 함수의 단계를 변경하려면 Python 예를 들어 괄호 안에 세 번째 숫자를 추가할 수 있습니다. 단계가 변경됩니다.
import numpy np np.arange(1, 14, 4)
출력:
array([ 1, 5, 9, 13])
NumPy Linspace 함수
Linspace는 균일한 간격의 샘플을 제공합니다.
구문 :
numpy.linspace(start, stop, num, endpoint)
여기
- 스타트: 시퀀스의 시작 값
- 중지: 시퀀스의 끝 값
- 에: 생성할 샘플 수입니다. 기본값은 50입니다.
- 종점: True(기본값)인 경우 중지가 마지막 값입니다. False인 경우 중지 값이 포함되지 않습니다.
예:
예를 들어 10부터 1까지 균등한 간격으로 5개의 값을 생성하는 데 사용할 수 있습니다.
import numpy as np np.linspace(1.0, 5.0, num=10)
출력:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
간격에 마지막 숫자를 포함하지 않으려면 끝점을 false로 설정할 수 있습니다.
np.linspace(1.0, 5.0, num=5, endpoint=False)
출력:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy 기능 Python
LogSpace는 로그 스케일에서 짝수 간격의 숫자를 반환합니다. Logspace는 np.linspace와 동일한 매개변수를 갖습니다.
구문 :
numpy.logspace(start, stop, num, endpoint)
예:
np.logspace(3.0, 4.0, num=4)
출력:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
마지막으로 배열 요소의 메모리 크기를 확인하려면 itemsize를 사용하면 됩니다.
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
출력:
16
각 요소는 16바이트를 사용합니다.
인덱싱 및 슬라이싱 Python
numpy를 사용하면 데이터 슬라이스가 간단합니다. 우리는 행렬 "e"를 잘라낼 것입니다. 참고로, Python, 행이나 열을 반환하려면 대괄호를 사용해야 합니다.
예:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
numpy를 사용하면 첫 번째 배열/열이 0에서 시작한다는 것을 기억하세요.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
출력:
First row: [1 2 3] Second row: [4 5 6]
In Python, 다른 많은 언어와 마찬가지로
- 쉼표 앞의 값은 행을 나타냅니다.
- 오른쪽의 값은 열을 나타냅니다.
- 컬럼을 선택하려면 컬럼 인덱스 앞에 :을 추가해야 합니다.
- : 선택한 열의 모든 행을 원한다는 의미입니다.
print('Second column:', e[:,1])
Second column: [2 5]
두 번째 행의 처음 두 값을 반환합니다. :을 사용하여 두 번째 열까지 모든 열을 선택합니다.
## Second Row, two values print(e[1, :2]) [4 5]
의 통계 함수 Python
NumPy에는 배열의 주어진 요소에서 최소값, 최대값, 백분위수 표준 편차 및 분산 등을 찾는 데 유용한 몇 가지 통계 함수가 있습니다. 기능은 다음과 같이 설명됩니다 -
Numpy는 아래와 같은 강력한 통계 기능을 갖추고 있습니다.
함수 | 누피 |
---|---|
Min | np.min() |
Max | np.max() |
Mean | np.평균() |
중앙값 | np.median() |
표준 편차 | np.std() |
다음 배열을 생각해 보세요.
예:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
출력:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
NumPy 통계 함수의 예
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
출력:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
numpy dot product란 무엇인가요?
Numpy.dot 제품 행렬 계산을 위한 강력한 라이브러리입니다. 예를 들어 np.dot를 사용하여 내적을 계산할 수 있습니다. Numpy.dot 곱은 a와 b의 내적입니다. numpy.dot() Python 2D 배열을 처리하고 행렬 곱셈을 수행합니다.
구문 :
numpy.dot(x, y, out=None)
파라미터
여기
x, y: 입력 배열. np.dot() 함수가 작동하려면 x와 y가 모두 1차원 또는 2차원이어야 합니다.
아웃: 이것은 반환될 1차원 배열 스칼라에 대한 출력 인수입니다. 그렇지 않으면 ndarray를 반환해야 합니다.
반품
numpy.dot() 함수는 Python 두 배열 x와 y의 점곱을 반환합니다. dot() 함수는 x와 y가 모두 1차원이면 스칼라를 반환합니다. 그렇지 않으면 배열을 반환합니다. 'out'이 주어지면 반환됩니다.
제기하다
내적 Python x의 마지막 차원이 y의 마지막 두 번째 차원과 크기가 같지 않으면 ValueError 예외가 발생합니다.
예:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
출력:
14
행렬 곱셈 Python
Numpy matmul() 함수는 2개의 배열의 행렬 곱을 반환하는 데 사용됩니다. 작동 방식은 다음과 같습니다.
1) 2-D 배열, 일반 결과를 반환합니다.
2) 크기 > 2, 제품은 매트릭스 스택으로 처리됩니다.
3) 1차원 배열을 먼저 행렬로 승격시킨 후 곱을 계산한다.
구문 :
numpy.matmul(x, y, out=None)
여기
x, y: 입력 배열. 스칼라는 허용되지 않습니다.
아웃: 선택적 매개변수입니다. 일반적으로 출력은 ndarray에 저장됩니다.
예:
같은 방식으로 np.matmul을 사용하여 행렬 곱셈을 계산할 수 있습니다.
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
출력:
array([[19, 22], [43, 50]])
결정자
마지막으로 행렬식을 계산해야 하는 경우 np.linalg.det()를 사용할 수 있습니다. numpy가 차원을 관리한다는 점에 유의하세요.
예:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
출력:
-2.000000000000005
요약
- Python 다음에서 사용할 수 있는 오픈 소스 라이브러리입니다. Python, 이는 수학, 과학, 공학 및 데이터 과학 프로그래밍.
- numpy.zeros() 또는 np.zeros Python 함수는 0으로 가득 찬 행렬을 만드는 데 사용됩니다.
- numpy.ones() 의 Python TensorFlow 및 기타 통계 작업의 첫 번째 반복 중에 가중치를 초기화할 때 사용할 수 있습니다.
- Python NumPy Reshape 함수는 데이터를 변경하지 않고 배열을 형성하는 데 사용됩니다.
- Python NumPy Flatten 함수는 1차원 배열의 복사본을 반환하는 데 사용됩니다.
- Numpy.hstack은 다음의 함수입니다. Python 단일 배열을 만들기 위해 입력 배열의 시퀀스를 수평으로 쌓는 데 사용됩니다.
- Numpy.vstack은 다음의 함수입니다. Python 단일 배열을 만들기 위해 입력 배열의 시퀀스를 수직으로 쌓는 데 사용됩니다.
- numpy.arange()는 정의된 간격 내에서 균일한 간격의 값을 포함하는 ndarray 객체를 반환하는 내장 numpy 함수입니다.
- Numpy.dot 제품은 행렬 계산을 위한 강력한 라이브러리입니다.
- Numpy matmul() 함수는 2개의 배열의 행렬 곱을 반환하는 데 사용됩니다.