2013-06-08 4 views
8

形状が(N、1)と(N、)のnumpy配列(Xと言うことがあります)の違いは何ですか?両方ともNx1行列ではありませんか?私が尋ねる理由は、時には計算がどちらか一方を返すことがあるからです。(n、1)と(n、)のnumpy配列

+0

私にいくつかの例を教えてもらえますか? – satoru

答えて

9

これは1次元配列である:

>>> np.array([1, 2, 3]).shape 
(3,) 

この配列は2次元であるが、最初の次元で一つだけの要素がある:

>>> np.array([[1, 2, 3]]).shape 
(1, 3) 

が移調は、あなたが求めている形状を与えます

>>> np.array([[1, 2, 3]]).T.shape 
(3, 1) 

ここで、配列を見てください。この2D配列の最初の列のみが塗りつぶされます。

>>> np.array([[1, 2, 3]]).T 
array([[1], 
     [2], 
     [3]]) 

これら二つのアレイを考える:

>>> a = np.array([[1, 2, 3]]) 
>>> b = np.array([[1, 2, 3]]).T 
>>> a 
array([[1, 2, 3]]) 
>>> b 
array([[1], 
     [2], 
     [3]]) 

あなたは放送を活用することができます。

>>> a * b 
array([[1, 2, 3], 
     [2, 4, 6], 
     [3, 6, 9]]) 

不足している番号が記入されているテーブルやスプレッドシートの行と列のために考えてみてください。。

>>> a + b 
array([[2, 3, 4], 
     [3, 4, 5], 
     [4, 5, 6]]) 

これを高次元で行うことは、あなたの想像力をより強くします。

関連する問題