2017-02-23 21 views
0

Я пытаюсь хранить матрицы в массиве, однако, когда я добавляю матрицу, он будет получать каждый элемент и выводить только одномерный массив.Numpy создать массив матриц

Пример кода:

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

Вы ищете 3D-массив или список/вектор ваших матриц? Кроме того, почему не просто 'matrix_array.append (np.identity (3))' внутри вашего цикла for? – 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) 
Смежные вопросы