gpt4 book ai didi

Python/Numpy - 在数组末尾包裹切片

转载 作者:太空狗 更新时间:2023-10-30 00:12:03 30 4
gpt4 key购买 nike

我有两个一维数组,一个具有一些感兴趣的值 (a),另一个提供该数组的索引 (b)。我知道 b 中的值总是增加,除了在某一点(可能是任何地方)数字减少,因为它从数组 a 的末尾滚动到开头。下面的方法似乎可行,但我只是认为必须存在更清洁的方法。谁能提出更好的建议?谢谢。

代码:

import numpy as np
a = np.arange(12)
b = np.array([5, 9, 2, 4])
#I want to generate these:
#[5,6,7,8,9]
#[9,10,11,0,1,2]
#[2,3,4]
#[4,5]

a = np.roll(a, -b[0], axis=0)
# Subtract off b[0] but ensure that all values are positive
b = (b-b[0]+len(a))%len(a)
for i, ind in enumerate(b):
if i < len(b)-1:
print a[b[i]:b[i+1]+1]
else:
print np.hstack((a[b[i]:len(a)], a[0]))

最佳答案

有点短,但也许我还能做得更好......

import numpy as np

a = np.arange(12)
b = np.array([5, 9, 2, 4])
b = np.append(b, b[0])

for i in range(0, len(b)-1):
print np.roll(a, len(a)-b[i])[:b[i+1]-b[i]+1]

关于Python/Numpy - 在数组末尾包裹切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683878/

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