Из «массива» или «матрицы»?Что я должен использовать? раздел Numpy для пользователей Matlab вики-страница:
Для массива все векторные фигуры 1xN, Nx1 и N - это всеразные вещи.Операции типа A [:, 1] возвращают массив ранга 1 формы N, а не ранг 2 формы Nx1.Транспонирование в массиве ранга 1. ничего не делает.
Вот пример, показывающий, что они не совпадают:
>>> import numpy as np
>>> a1 = np.array([1,2,3])
>>> a1
array([1, 2, 3])
>>> a2 = np.array([[1,2,3]]) // Notice the two sets of brackets
>>> a2
array([[1, 2, 3]])
>>> a3 = np.array([[1],[2],[3]])
>>> a3
array([[1],
[2],
[3]])
Итак, вы уверены, что все ваши массивы2D-массивы, или некоторые из них являются 1d-массивами?
Если вы хотите использовать команду array[0,:]
, я бы порекомендовал на самом деле использовать 1xN 2d-массивы вместо 1d-массивов.Вот пример:
>>> a2 = np.array([[1,2,3]]) // Notice the two sets of brackets
>>> a2
array([[1, 2, 3]])
>>> a2[0,:]
array([1, 2, 3])
>>> b2 = np.array([[1,2,3],[4,5,6]])
>>> b2
array([[1, 2, 3],
[4, 5, 6]])
>>> b2[0,:]
array([1, 2, 3])