Python / Numpy-将切片环绕在数组的末端。
|
我有两个一维数组,一个数组具有一些感兴趣的值(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]))
没有找到相关结果
已邀请:
2 个回复
掀辟髓观粟
埃庐
内存的情况下的一种快速方法是: