我正在尝试使用2x2矩阵P
和坐标internal
(以np.array
的形式存储在numpy中旋转一些坐标)。但是,在计算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)
可以看出,我无法索引到矩阵中,并且突然间我应该在1D数组中有了一个额外的维度。在the documentation for numpy中,其声明“如果第二个自变量是1-D,则通过在其维上附加1来将其提升为矩阵。在矩阵相乘后,将删除附加的1。”但是,我没有看到这种现象,而是看到了奇怪的嵌套形状。
为什么会这样?