numpy 矩阵向量乘法:如何返回np.shape(d,)

qeeaahzv  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(106)

下面是Python中的一个示例代码:

import numpy as np

X = np.matrix([[0, 1], [1, 0]])
e1 = np.array([1, 1])

state = X @ e1
print(X @ state)

字符串
matmul操作数在执行矩阵向量乘法时返回的向量的形状为(2,1)而不是(2,),因此您无法将结果向量与另一个矩阵相乘而不会出现不匹配。
为了解决这个错误,我可以在乘法后使用整形函数来获得正确的结果。但是,我想知道是否有一种方法可以 * 直接 * 具有正确的形状,因为我必须在for循环中进行大量此类操作。

slmsl1lt

slmsl1lt1#

如果你使用np.array而不是np.matrix,它将解决你的问题:

import numpy as np

X = np.array([[0, 1], [1, 0]])
e1 = np.array([1, 1])

state = X @ e1
print(state.shape)
# output: (2,)

print(X @ state)
# output: [1 1]

字符串
np.matrixdeprecated
不再推荐使用此类,即使是线性代数。而应使用常规数组。将来可能会删除该类。
希望这会有帮助!

相关问题