gpt4 book ai didi

python - Numpy 矩阵减法混淆

转载 作者:太空狗 更新时间:2023-10-29 20:30:46 25 4
gpt4 key购买 nike

我对我不小心用两个 numpy 矩阵执行的操作结果有疑问(后来修复了)。

假设我有一个列向量 A = [1,2,3] 和一个行向量 B = [1,1,1]。据我所知,没有正确的数学方法来“减去”这两个向量,即这应该是一个未定义的操作。然而,当我这样做时,我回来了:

>>> matrix([[0, 1, 2],
[0, 1, 2],
[0, 1, 2]])

我认为这可能是某种广播操作,但这仍然让我有些困扰。 numpy.matrix 对象不应该只包含数学上有效的矩阵运算吗?

感谢任何帮助!

谢谢!

最佳答案

A和B一起广播:

A = np.matrix([[1],[2],[3]])
#a 3x1 vector
#1
#2
#3

B = np.matrix([[1,1,1]])
#a 1x3 vector
#1 1 1

A-B
#a 3x3 vector
#0 0 0
#1 1 1
#2 2 2

A 沿其大小 1 维度(列)广播到

#1 1 1
#2 2 2
#3 3 3

B 沿其大小 1 维度(行)广播到

#1 1 1
#1 1 1
#1 1 1

然后像往常一样计算两个 3x3 矩阵的 A-B。

如果您想知道它为什么这样做而不是报告错误,那是因为 np.matrix 继承自 np.array。 np.matrix 覆盖乘法,但不覆盖加法和减法,因此它使用基于 np.array 的运算,在维度允许时广播。

关于python - Numpy 矩阵减法混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com