gpt4 book ai didi

python - Numpy array.resize() - 零 'first'

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

我可以使用 array.resize(shape) 来调整数组的大小,并在没有任何值的情况下向这些索引添加零。如果我的数组是 [1,2,3,4] 并且我使用 array.resize[5,0] 我得到 [1,2,3, 4,0]。如何将零附加/填充到前面,产生 [0,1,2,3,4]

我正在动态地执行此操作 - 尝试使用:

array.resize(arrayb.shape)

我想避免(不惜一切代价)制作数组的内存副本。也就是把数组反转,调整大小,再反转。使用 View 是理想的选择。

最佳答案

您可以尝试使用负步幅处理数组(尽管您永远无法确定调整大小可能不必制作副本):

_a = np.empty(0) # original array
a = _a[::-1] # the array you work with...

# now instead of a, resize the original _a:
del a # You need to delete it first. Or resize will want refcheck=False, but that
# will be dangerous!
_a.resize(5)
# And update a to the new array:
a = _a[::-1]

但我真的建议你尽可能地让数组足够大,这看起来不是很漂亮,但我认为这是除了复制数据之外的唯一方法。您的数组也会有一个负步长,因此它不会是连续的,所以如果这意味着您在其上使用的某些函数必须进行复制,那么您就不走运了。

此外,如果您对 a_a 进行切片,则必须制作一个副本,或者确保在调整大小之前删除它们。虽然您可以提供 refcheck=False,但这似乎会使数据无效。

关于python - Numpy array.resize() - 零 'first',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269506/

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