gpt4 book ai didi

Python Numpy 内存布局

转载 作者:行者123 更新时间:2023-11-28 22:30:06 24 4
gpt4 key购买 nike

我正在尝试运行代码

import numpy as np
a = np.zeros((3,2))
b = a.T.reshape(3*2)
b[0] = 99
a
array([[0,0],
[0,0],
[0,0]])

这里的问题是 numpy 中的 reshape 函数返回原始数组的 View ,如果 View 对象或主对象中发生任何更改,将在整个 View 和主对象中传播。

但在上述情况下并没有发生。请解释。

最佳答案

你正在做的最后一次 reshape 不能用原始内存布局中的步幅来表示:

orig                  1 2  3 4  5 6  ok, strides 2, 1

transpose 1 3 5 2 4 6 ok, strides 1, 2

reshaped transpose 1 3 5 2 4 6 impossible

我不是 100% 确定我理解正确(或者,更准确地说,我几乎 100% 确定我没有理解),但可能有一些 obscure cases当副本写回时。无论如何,这不是其中之一。

关于Python Numpy 内存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618488/

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