【发布时间】:2020-08-27 09:54:17
【问题描述】:
我一直在尝试找出 NumPy 的复数矩阵乘法背后的算法:
import numpy as np
A = np.array([[17.+0.j, -3.+0.j],
[-7.+0.j, 1.+0.j]])
B = np.array([[ 60.+0.j, -4.+0.j],
[-12.+0.j, 0.+0.j]])
print(A * B)
它输出:
[[1020.+0.j 12.-0.j]
[ 84.-0.j 0.+0.j]]
standard matrix multiplication 的结果非常不同,如下面的数字所示,所以我想知道 NumPy 到底是做什么的:
[[1056.+0.j -68.+0.j]
[-432.+0.j 28.+0.j]]
我一直在尝试仅使用 for 循环来重现他们的乘法算法,但我仍然没有找到答案。有什么建议吗?
【问题讨论】:
-
*是逐元素乘法,您可能正在寻找numpy.matmul()。 -
@AMC 不。在这种情况下,它在我们背后使用
np.multiply()。 -
我一头雾水,你指的是什么?
-
问题询问 NumPy 在两个复数矩阵之间进行什么类型的乘法运算。答案是
np.multipy()。另外,请不要再次删除标签。 -
问题是 NumPy 在两个复数矩阵之间进行什么类型的乘法运算。答案是
np.multiply()。 确实如此,尽管我相信在涉及 ndarray 时总是如此。这会导致与旧的nump.matrix类混淆,例如参见 stackoverflow.com/questions/3890621/…。
标签: python numpy matrix complex-numbers