Numpy创建一个矩阵数组

时间:2017-02-23 04:06:00

标签: python arrays numpy matrix

我试图将矩阵存储到一个数组中,但是当我附加矩阵时,它会得到每个元素并输出一个1维数组。

示例代码:

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

1 个答案:

答案 0 :(得分: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)