Я пытаюсь повернуть некоторые координаты в numpy, используя матрицу 2x2 P
и координаты internal
(сохраняются как np.array
в строке).Тем не менее, я получаю странное поведение при расчете P @ internal
.Код ниже воспроизводит поведение:
>>> import numpy as np
>>> a = np.array([1, 0], dtype=np.float)
>>> c, s = np.cos(np.pi), np.sin(np.pi)
>>> p = np.matrix([[c, s], [-s, c]])
>>> b = p @ a
>>> b
matrix([[-1.0000000e+00, -1.2246468e-16]])
>>> b.shape
(1, 2)
>>> b[0].shape
(1, 2)
>>> b[0][0].shape
(1, 2)
>>> b[0][0][0].shape
(1, 2)
Как видно, я не могу индексировать в матрицу, и у меня внезапно появляется дополнительное измерение в том, что должно быть одномерным массивом.В документации для numpy говорится: «Если второй аргумент - 1-D, он повышается до матрицы, добавляя 1 к ее измерениям. После умножения матрицы добавленная 1 удаляется».Однако я не вижу этого поведения, а просто вижу странную вложенную форму.
Почему это происходит?