gpt4 book ai didi

python - 如何就地反转 NumPy 数组?

转载 作者:行者123 更新时间:2023-11-28 19:08:46 29 4
gpt4 key购买 nike

是否有任何有效的方法来就地反转 NumPy?

注意:我不是在寻找相反的观点。我想让数组真正反转。

最佳答案

这并不优雅,但如果就地是最重要的因素,而运行时间不是那么重要(因为 numpy 切片将远远优于迭代方法),您总是可以交换数组左右两端的索引直到指数收敛:

def reverse(arr):
ln = arr.shape[0]
lidx, ridx = 0, ln - 1

while lidx < ridx:
rtmp = arr[ridx]
arr[ridx] = arr[lidx]
arr[lidx] = rtmp
lidx += 1
ridx -= 1

return arr

这适用于奇数和偶数长度的数组。甚至:

>>> reverse(np.arange(4))
array([3, 2, 1, 0])

奇数:

>>> reverse(np.arange(5))
array([4, 3, 2, 1, 0])

并证明它就位:

>>> y = np.arange(6)
>>> x = reverse(y)
>>> x is y
True

关于python - 如何就地反转 NumPy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151289/

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