gpt4 book ai didi

python - 创建一个循环以将矩阵乘以它的每个元素,然后对结果求和的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:33 25 4
gpt4 key购买 nike

对于 Python 来说非常新,因此对于缺乏词汇/知识深表歉意。我想知道是否有更好的方法来实现下面的代码提供的功能。使用我所做的循环,我可以生成并附加所有矩阵/数组,这些矩阵/数组由矩阵 A 乘以 A 中的每个元素形成。最后一行代码然后将这个数组中的所有元素相加并打印出来我想要的结果。

问题是,当我达到大约 d = 600 时,由于我的计算机内存不足,我收到 SIGKILL 错误。

我已经考虑了它背后的数学原理,其中包括将求和分解为处理不同索引值的部分,但似乎没有什么可以显着加快它的速度。

这可能纯粹是一个基于内存的问题,但我想我会询问是否有任何基于 Python/代码的提示可以提供帮助。代码如下:

A = numpy.random.randint(0, 4, size=(d, d))

All = []
for n in range(0, d):
for m in range(0, d):
All.append(A*(A[n,m]))

print(numpy.sum(All))

总的来说,我得到了正确的结果,但是由于矩阵的大小和乘法次数太多,我无法在没有内存错误的情况下达到我正在寻找的所需的 d = 2000。提前致谢。

最佳答案

如果你想要的只是总和,你不需要在这里循环并构建一个新列表......你在数学上所做的事情归结为:

total = A.sum() ** 2

关于python - 创建一个循环以将矩阵乘以它的每个元素,然后对结果求和的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57245694/

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