gpt4 book ai didi

python - numpy.swapaxes 的行为

转载 作者:太空宇宙 更新时间:2023-11-03 15:38:17 25 4
gpt4 key购买 nike

任何人都可以解释一下 numpy.swapaxes 的以下行为:

import numpy as np
from copy import deepcopy

n = 10 # Works fine, but doesn't if set n = 100
x = rand.uniform(size=(n, n, n))
x0 = deepcopy(x)
x += np.swapaxes(x, 0, 1) # Works fine if do x = x + np.swapaxes(x, 0, 1) instead...
temp = x0 + np.swapaxes(x0, 0, 1)
print np.linalg.norm(x - temp)

n = 10时,打印的错误为零,但当n = 1000时则不是。为什么会这样呢?如果我们使用 x = x + np.swapaxes(x, 0, 1) 而不是 x += np.swapaxes(x, 0, 1),代码也可以正常工作>。 (调试起来非常令人沮丧,因为代码可以在小样本上运行......)

最佳答案

出现问题是因为您修改了正在读取的数据......

你就会明白这个问题here

一些摘录:

  • 这是一个设计问题,并不是真正的错误。
  • Numpy 的总体理念是提供尽可能多的安全性,而无需影响速度。
  • [更正] ...将导致不可预测的速度减慢并增加在已经明确定义并正常工作的情况下使用内存。

智慧规则:永远不要修改您正在阅读的数据。

关于python - numpy.swapaxes 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42358656/

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