Я немного запутался в выборе столбца массива NumPy, потому что результат отличается от Matlab и даже от матрицы NumPy. См. Следующие случаи.Выбор столбца массива numpy
В Matlab мы используем следующую команду для выбора вектора столбца из матрицы.
x = [0, 1; 2 3]
out = x(:, 1)
Затем из становится [0; 2]
, который представляет собой вектор-столбец.
Чтобы сделать то же самое с NumPy Matrix
x = np.matrix([[0, 1], [2, 3]])
out = x[:, 0]
Тогда выход np.matrix([[0], [2]])
, который, как ожидается, и это вектор-столбец.
Однако в случае NumPy массива
x = np.array([[0, 1], [2, 3]])
out = x[:, 0]
Выход np.array([0, 2])
который является 1 мерная, так что это не вектор-столбец. Я ожидаю, что это должно было быть np.array([[0], [2]])
. У меня есть два вопроса.
1.Почему вывод из массива NumPy отличается от случая матрицы NumPy? Это вызывает много путаницы для меня, но я думаю, что для этого может быть какая-то причина.
2.Чтобы получить вектор-столбец из 2-Dim NumPy массив, то я должен делать дополнительные вещи, как expand_dims
x = np.array([[0, 1], [2, 3]])
out = np.expand_dims(x[:, 0], axis = 1)
Из-за того, как работает вещание, вам не важно, является ли одномерный вектор строкой или столбцом. Просто используйте его, как вам нравится. –