当我使用resize
方法缩小numpy数组时(即数组因为resize
而变小),是否保证不做复制?将NumPy数组的大小调整为较小的大小而无需复制
例子:
a = np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a.resize(5, refcheck=False) # array([0, 1, 2, 3, 4])
从我的理解这应该是尽可能不进行复制。我的问题:这个实现是否确实确保这种情况总是如此?不幸的是,resize的文档没有提到它。
如果您的新尺寸总是会更小,为什么不切片数组并分配给自己? – EdChum
@EdChum:你的意思是'a = a [:5]'?说实话,我没有想到这个选择。不过,我不知道内部是如何切片的。这是否会在没有任何数据副本的情况下工作? – luator