numpy의 존재 덕분에 python은 matlab 못지않은 강력한 행렬 계산 기능을 갖게 되었습니다.
공식 문서(https://docs.scipy.org/doc/numpy-dev/user/quickstart.html)
우선 numpy에서는 데이터 유형 , ndarray 유형은 표준 라이브러리의 array.array와 다릅니다.
ndarray.ndim
파이썬 세계에서는 배열의 축 수(차원)입니다. 차원의 수를 순위라고 합니다.
ndarray.shape
배열의 차원 이는 각 차원. n개의 행과 m개의 열이 있는 행렬의 경우 모양은 (n,m)입니다. 따라서 모양 튜플의 길이는 순위 또는 차원 수 ndim입니다.
ndarray.size배열 요소의 총 개수입니다. 이는 모양 요소의 곱과 같습니다.
ndarray.dtype배열의 요소 유형을 설명하는 객체입니다. 표준 Python 유형을 사용하여 dtype을 생성하거나 지정할 수 있습니다. 또한 NumPy는 numpy.int32, numpy.int16 및 numpy.
float64를 제공합니다.
ndarray.itemsize배열의 각 요소 크기(바이트)입니다. 예를 들어 float64 유형의 요소 배열에는 항목 크기가 8(=64/8)이고
그 동안 다음 중 하나가 있습니다. complex32 유형은 항목 크기 4(=32/8)입니다. ndarray.dtype.itemsize.
ndarray.data일반적으로 배열의 실제 요소를 포함하는 버퍼입니다. 인덱싱 기능을 사용하여 배열의 요소에 액세스하므로 이 속성을 사용할 필요가 없습니다. 특정 규칙이 있는 행렬
>>> import numpy as np>>> a = np.array([2,3,4])>>> a array([2, 3, 4])>>> a.dtype dtype('int64')>>> b = np.array([1.2, 3.5, 5.1])>>> b.dtype dtype('float64')
함수논리 연산
>>> b = np.array([(1.5,2,3), (4,5,6)])>>> b array([[ 1.5, 2. , 3. ], [ 4. , 5. , 6. ]])
있음 matlab에서는 .*,./ 등입니다
하지만 numpy에서는 +, -, ×,/를 사용하면 각 점 사이의 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 것이 우선입니다두 개의 행렬(정사각형) 행렬)은 요소 간 연산과 행렬 연산을 모두 수행할 수 있으며, 요소 간 연산이 먼저 수행됩니다
>>> c = np.array( [ [1,2], [3,4] ], dtype=complex )>>> c array([[ 1.+0.j, 2.+0.j], [ 3.+0.j, 4.+0.j]])
행렬 연산을 수행해야 하는 경우 일반적으로 행렬 곱셈입니다
>>> np.zeros( (3,4) ) array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]]) >>> np.ones( (2,3,4), dtype=np.int16 ) # dtype can also be specified array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16) >>> np.empty( (2,3) ) # uninitialized, output may vary array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260], [ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])
>>> a = np.array( [20,30,40,50] ) >>> b = np.arange( 4 ) >>> b array([0, 1, 2, 3]) >>> c = a-b >>> c array([20, 29, 38, 47]) >>> b**2 array([0, 1, 4, 9]) >>> 10*np.sin(a) array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854]) >>> a<35 array([ True, True, False, False], dtype=bool)
행렬 순회
>>> import numpy as np>>> A = np.arange(10,20)>>> B = np.arange(20,30)>>> A + B array([30, 32, 34, 36, 38, 40, 42, 44, 46, 48])>>> A * B array([200, 231, 264, 299, 336, 375, 416, 459, 504, 551])>>> A / B array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])>>> B / A array([2, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> A = np.array([1,1,1,1]) >>> B = np.array([2,2,2,2]) >>> A.reshape(2,2) array([[1, 1], [1, 1]]) >>> B.reshape(2,2) array([[2, 2], [2, 2]]) >>> A * B array([2, 2, 2, 2]) >>> np.dot(A,B) 8 >>> A.dot(B) 8
>>> B = np.arange(3) >>> B array([0, 1, 2]) >>> np.exp(B) array([ 1. , 2.71828183, 7.3890561 ]) >>> np.sqrt(B) array([ 0. , 1. , 1.41421356]) >>> C = np.array([2., -1., 4.]) >>> np.add(B, C) array([ 2., 0., 6.])
위 내용은 일반적인 numpy 사용법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!