0

也许这已经解决了,但我还没有找到一个简洁的答案。我正在尝试使用索引数组对 numpy 数组进行切片,并且我希望切片数组是原始数组的浅表副本。

我认为这可以通过使用 ctypes 创建一个指针数组来解决,但我觉得这会很麻烦。我想知道是否有更有效的方法来做到这一点(即更少的代码,基于numpy)

例如:

>>> x = np.arange(10)
>>> index_array = [1, 4, 6]
>>> y = x[index_array]
>>> print(sum(y))
11
>>> x += 1
>>> print(sum(y))
11

我得到的金额相同,因为y是 的副本x,而不是视图。我想定义

>>> y = shallow(x, index_array)

使得 y 的条目是对 x 的条目的引用,并且

>>> x += 1
>>> print(sum(y))
14

编辑

在这里找到有用的信息: Numpy 中的视图与副本:无法按照评论中的建议获得花哨切片的浅表副本,将编写 C 代码并将其包装以使其与 numpy 数组互操作。

4

0 回答 0