0

NumPy 配列に関して問題があります。

.T のような配列メソッドや numpy.concatenate のような関数を取得して、作成した配列を操作することはできません。

>>> a=np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a.T
array([1, 2, 3])
>>> np.concatenate((a,a),axis=0)
array([1, 2, 3, 1, 2, 3])
>>> np.concatenate((a,a),axis=1)
array([1, 2, 3, 1, 2, 3])
>>>

ただし、rand などの組み込み関数を使用して配列を作成すると、すべて問題ありません

>>> a=np.random.rand(1,4)
>>> a.T
array([[ 0.75973189],
       [ 0.23873578],
       [ 0.6422108 ],
       [ 0.47079987]])
>>> np.concatenate((a,a),axis=0)
array([[ 0.92191111,  0.50662157,  0.75663621,  0.65802565],
       [ 0.92191111,  0.50662157,  0.75663621,  0.65802565]])

要素の型 (int32 対 float64) と関係があると思いますか?

Windows 7でpython 2.7を実行しています

どんな助けでも大歓迎です。

ありがとう !

4

1 に答える 1

1

試す:

a = np.random.rand(4)

そして、同じように機能することがわかると思います。

一般に、numpy では、配列の形状と軸に注意を払う必要があります。(4,)(4,1)、およびの形状(1,4)はすべて異なり、ほとんどの状況で異なる動作をします。

例えば:

a = np.random.rand(4)
print a.shape, a.T.shape  # (4,) (4,)

b = np.random.rand(1,4)
print b.shape, b.T.shape  # (1,4) (4,1)
于 2013-08-31T21:59:18.733 に答える