2011-09-10 22 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

3番目の軸を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'を適切に修正していただければ、 shape属性: 'A.shape = A.shape +(1、)'、あるいは 'A.shape + = 1 'です。 –

関連する問題