массив numpy, который равен (n, 1) и (n,)

В чем разница между массивом numpy (скажем, X), который имеет форму (N, 1) и (N,). Не являются ли обе матрицы Nx1? Причина, по которой я спрашиваю, заключается в том, что иногда вычисления возвращаются либо к одному, либо к другому.

Это 1D-массив:

>>> np.array([1, 2, 3]).shape (3,) 

Этот массив является 2D, но в первом измерении есть только один элемент:

 >>> np.array([[1, 2, 3]]).shape (1, 3) 

Транспонирование дает форму, которую вы просите:

 >>> np.array([[1, 2, 3]]).T.shape (3, 1) 

Теперь посмотрим на массив. Заполняется только первый столбец этого 2D-массива.

 >>> np.array([[1, 2, 3]]).T array([[1], [2], [3]]) 

Учитывая эти два массива:

 >>> a = np.array([[1, 2, 3]]) >>> b = np.array([[1, 2, 3]]).T >>> a array([[1, 2, 3]]) >>> b array([[1], [2], [3]]) 

Вы можете воспользоваться трансляцией:

 >>> a * b array([[1, 2, 3], [2, 4, 6], [3, 6, 9]]) 

Пропущенные номера заполняются. Подумайте о строках и столбцах таблицы или таблицы.

 >>> a + b array([[2, 3, 4], [3, 4, 5], [4, 5, 6]]) 

Выполнение этого с более высокими размерами становится более жестким в вашем воображении.