gpt4 book ai didi

python - UPDATEIFCOPY 标志是否为真?

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

我正在尝试更深入地了解 numpy 数组;特别是内存布局/所有权/共享相关方面。在那次努力中,我偶然发现了 UPDATEIFCOPY 标志,这听起来很有趣。只是我从来没有真正见过它。用户只能 unset它。如果你喜欢安静,谷歌搜索“UPDATEIFCOPY True”会非常放松。

那么如何创建一个将该标志设置为 True 的数组?

最佳答案

使用np.nditer时可以设置if (示例取自 NumPy source code ):

>>> import numpy as np
>>> a = np.zeros((6*4+1,), dtype='i1')[1:]
>>> a.dtype = 'f4'
>>> a[:] = np.arange(6, dtype='f4')
>>> i = np.nditer(a, [], [['readwrite', 'updateifcopy', 'aligned']])
>>> print(i.operands[0].flags)
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : True # <--- :-)

但是我不知道这是在什么情况下真正设置的,因为如果我删除前两行,它就不再起作用了:

>>> import numpy as np

>>> a = np.arange(6, dtype='f4')
>>> i = np.nditer(a, [], [['readwrite', 'updateifcopy', 'aligned']])
>>> print(i.operands[0].flags)
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False # <--- :-(

关于python - UPDATEIFCOPY 标志是否为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41952401/

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