다음 기사에서는 numpy의 축과 차원에 대한 이해를 공유할 것이며 이는 좋은 참고 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다. 함께 살펴보겠습니다
NumPy의 주요 객체는 동질적인 다차원 배열입니다. 이는 모두 동일한 유형의 요소 테이블이며 NumPy에서는 차원을 축이라고 합니다. 축의 순위는 순위입니다.
예를 들어 3D 공간 [1, 2, 1]의 점 좌표는 축의 길이가 3이기 때문에 순위 1의 배열입니다. 아래에서 배열은 랭크 2(2차원)입니다. 첫 번째 차원(축)의 길이는 2이고 두 번째 차원의 길이는 3입니다.
[[ 1., 0., 0.], [ 0., 1., 2.]]
ndarray.ndim
배열 축의 개수 python의 세계에서는 축의 개수를 Rank
>> X = np.reshape(np.arange(24), (2, 3, 4)) # 也即 2 行 3 列的 4 个平面(plane) >> X array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]])
shape 함수는 numpy.core.fromnumeric에 있는 함수입니다. 행렬의 길이, 예를 들어 Shape[0]은 행렬의 첫 번째 차원의 길이를 읽는 것입니다.
shape(x)
(2,3,4)
shape(x)[0]
2
또는
x.shape[0]
2
각 평면의 구성을 별도로 살펴보겠습니다.
>> X[:, :, 0] array([[ 0, 4, 8], [12, 16, 20]]) >> X[:, :, 1] array([[ 1, 5, 9], [13, 17, 21]]) >> X[:, :, 2] array([[ 2, 6, 10], [14, 18, 22]]) >> X[:, :, 3] array([[ 3, 7, 11], [15, 19, 23]])
즉, np.arange(24)(0, 1, 2, 3, ..., 23)은 다시 - 다차원 배열의 경우 여러 축 방향으로 배열할 때 마지막 축이 먼저 할당됩니다. (2차원 배열의 경우 행 방향이 먼저 할당되고, 3차원 배열의 경우 행 방향이 먼저 할당됩니다.) 평면이 먼저 할당됨)
reshpae는 배열의 모양을 변경하는 데 사용되는 배열 개체의 메서드입니다.
2차원 배열
#!/usr/bin/env python # coding=utf-8 import numpy as np a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) print a d=a.reshape((2,4)) print d
3차원 배열
#!/usr/bin/env python # coding=utf-8 import numpy as np a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) print a f=a.reshape((2, 2, 2)) print f
프린 모양 변경의 예 배열 요소는 변경할 수 없습니다. 배열 요소가 변경되었기 때문에 이렇게 쓰는 것은 잘못된 것입니다.
#!/usr/bin/env python # coding=utf-8 import numpy as np a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) print a print a.dtype e=a.reshape((2,2)) print e
참고: reshape로 생성된 새 배열과 원래 배열은 동일한 메모리를 공유합니다. 즉, 한 배열의 요소가 변경되면 다른 배열도 변경됩니다.
#!/usr/bin/env python # coding=utf-8 import numpy as np a=np.array([1, 2, 3, 4, 5, 6, 7, 8]) print a e=a.reshape((2, 4)) print e a[1]=100 print a print e
Python에서 reshape 함수 매개변수 -1의 의미
a=np.arange(0, 60, 10) >>>a array([0,10,20,30,40,50]) >>>a.reshape(-1,1) array([[0], [10], [20], [30], [40], [50]])
a.reshape(1,1)로 쓰면 오류가 보고됩니다.
ValueError: 크기 6의 배열을 모양 (1,1)
>>> a = np.array([[1,2,3], [4,5,6]]) >>> np.reshape(a, (3,-1)) # the unspecified value is inferred to be 2 array([[1, 2], [3, 4], [5, 6]])
-1은 너무 게으른 나머지 채워야 할 숫자를 계산할 수 없음을 의미합니다. 이는 Python에서 다음을 통해 추측합니다. a 및 기타 값 3.
# 下面是两张2*3大小的照片(不知道有几张照片用-1代替),如何把所有二维照片给摊平成一维 >>> image = np.array([[[1,2,3], [4,5,6]], [[1,1,1], [1,1,1]]]) >>> image.shape (2, 2, 3) >>> image.reshape((-1, 6)) array([[1, 2, 3, 4, 5, 6], [1, 1, 1, 1, 1, 1]])
관련 추천:
위 내용은 numpy의 축과 차원의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!