2011-09-10 9 views

답변

31

, 당신은 또한 numpy.newaxis으로 공격 태도를 보여준 사용할 수 있습니다

>>> from numpy import zeros, newaxis 
>>> a = zeros((6, 8)) 
>>> a.shape 
(6, 8) 
>>> b = a[:, :, newaxis] 
>>> b.shape 
(6, 8, 1) 

심지어이 (차원의 임의의 수와 함께 작동되는) :

>>> b = a[..., newaxis] 
>>> b.shape 
(6, 8, 1) 
+5

참고로, 'numpy.newaxis'는 단지'None'입니다. 'newaxis'는 읽기 쉽도록 "단지"입니다. 단지'b = a [..., None]'과 동등합니다. (줄임표는 2D 배열뿐만 아니라 N 차원 배열에서도 작동합니다.) –

+1

True. 웬일인지 나는'newaxis'가'None' 인 것은 구현 세부 사항 일 뿐이므로 미래에 변경 될 수 있다는 인상을 받았지만 명시 적으로 문서화 된 것처럼 보입니다. –

+0

세 번째 축을 1이 아닌 다른 값으로 만들겠습니까? 예 : 어떻게'a '를'b.shape = (6,8,3)'으로'b'로 변환합니까? – Gathide

2
import numpy as np 

a= np.eye(3) 
print a.shape 
b = a.reshape(3,3,1) 
print b.shape 
6
numpy.reshape(array, array.shape + (1,)) 
+0

감사합니다. A = A.reshape (A.shape + (1,)) – nobody

+2

'A'를 제 위치에서 수정하면 쉽게 할당 할 수 있습니다. 셰이프 특성 : A. 셰이프 = A. 셰이프 + (1,) 또는 심지어 A. 셰이프 + = 1,'. –

관련 문제