22

実行中

import numpy as np
t1 = np.arange(1,10)
t2 = np.arange(11,20)

t3 = np.concatenate((t1,t2),axis=1)

結果は

Traceback (most recent call last):

  File "<ipython-input-264-85078aa26398>", line 1, in <module>
    t3 = np.concatenate((t1,t2),axis=1)

IndexError: axis 1 out of bounds [0, 1)

軸 1 が範囲外であると報告されるのはなぜですか?

4

5 に答える 5

19

あなたのタイトルはそれを説明しています-1次元配列には2番目の軸がありません!

しかし、私のシステムでは@Oliver W.s と同じように、エラーは発生しません。

In [655]: np.concatenate((t1,t2),axis=1)
Out[655]: 
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
       19])

これは私が期待していた結果ですaxis=0

In [656]: np.concatenate((t1,t2),axis=0)
Out[656]: 
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
       19])

配列が1dの場合、パラメーターをconcatenate無視するようです。axisこれが 1.9 バージョンの新しいものなのか、それとも古いものなのかはわかりません。

さらに制御するには、必要に応じて配列の次元を拡張するvstackおよびラッパーの使用を検討してください。hstack

In [657]: np.hstack((t1,t2))
Out[657]: 
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
       19])

In [658]: np.vstack((t1,t2))
Out[658]: 
array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9],
       [11, 12, 13, 14, 15, 16, 17, 18, 19]])
于 2016-02-15T04:06:59.890 に答える