numpy.AxisError: axis 1 is out of bounds for array of dimension 1


テキストアドレス
エラーはnp.concatenate(,axis=1)の実行時に発生します.
2つの1次元データを積み上げようとすると
#  
a = [1,2,3]
b = [4,5,6]
#   
[[1,2,3],
[4,5,6]]

npを使用する.concatenate((a,b),axis=1)
これは、aとbはいずれも1次元データであり、1次元のみ、すなわちaxis=0であり、axis=1は存在しないためである.
2つのソリューションを見つけました
  • np.vstack((A,B))

  • A,Bを縦に積み重ねてもよい
    print(np.vstack((a,b)))	#        ‘(a,b)’
    # [[1 2 3] 
    #  [4 5 6]]
    

    アメリカでは足りないのは、この方法では2つのベクトルしか伝えられずに積み重ねられることです.
  • np.newaxis + np.concatenate()

  • newaxis、その名の通り新しい軸で、使い方は以下の通りです.
    a = a[np.newaxis,:]	#   ‘:’      (   3),a       (1,3),       
    # [[1 2 3]]
    b = b[np.newaxis,:]
    # [[4 5 6]]
    

    このとき私は2つの(1,3)のベクトルを(1*2,3)=(2,3)の行列に積み上げることができて、この時axis=0を使うべきで、つまり第1の次元です
    print(np.concatenate((a,b),axis=0))
    # [[1 2 3] 
    #  [4 5 6]]
    

    関連
    Numpy:マトリックスマージ