gpt4 book ai didi

python - 就地矩阵乘法 numpy

转载 作者:行者123 更新时间:2023-12-01 09:08:46 26 4
gpt4 key购买 nike

我有一个点数组列表,当我迭代它时,我想进行就地矩阵乘法,即我希望将结果存储在同一个矩阵中。

代码本质上是:

for p in p_list:
# R is a 3x3 matrix
p[:,:] = np.matmul(R,p)

这段代码没有显示错误,但结果不正确,就好像在数组中执行乘法并按计算结果替换一样,因此它创建了错误的输出矩阵。删除 [:,:] 给出正确的乘法。

1) 为什么会发生这种情况?2) 我使用 [:,:] 的主要原因是确保结果存储回列表 p_list 中。有没有正确的方法来做到这一点(不使用中间变量)?

最佳答案

matmul 接受输出参数

如果p_list是一个ndarray,形状为N, 3,那么您可以在一个matmul<中实现整个乘法:

np.matmul(p_list, R.T, out=p_list)

关于python - 就地矩阵乘法 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831561/

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