2017-02-23 7 views
0

行列を行列に格納しようとしていますが、行列を追加するとすべての要素が得られ、出力は1次元の配列になります。Numpyは行列の配列を作成します

コード例:

matrix_array= np.array([]) 
for y in y_label: 
     matrix_array= np.append(matrix_array, np.identity(3)) 
+0

あなたは、3D配列またはあなたの行列のリスト/ベクトルをお探しですか?また、なぜあなたのforループの中に 'matrix_array.append(np.identity(3))'がありますか? – tooty44

+0

私は3D配列を探しています – user

答えて

1

明らかにnp.appendは、ジョブの間違ったツールです。

In [144]: np.append(np.array([]), np.identity(3)) 
Out[144]: array([ 1., 0., 0., 0., 1., 0., 0., 0., 1.]) 

そのドキュメントから:

axisが指定されていない場合、valuesが可能どんな形でも使用する前に平らにした になります。リストで

追加

In [153]: alist=[] 
In [154]: for y in [1,2]: 
    ...:  alist.append(np.identity(3)) 
    ...:  
In [155]: alist 
Out[155]: 
[array([[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]]), array([[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]])] 
In [156]: np.array(alist) 
Out[156]: 
array([[[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]], 

     [[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]]]) 
In [157]: _.shape 
Out[157]: (2, 3, 3) 
関連する問題