繁体   English   中英

切片 Numpy 数组按 2 个索引 arrays

[英]Slicing Numpy Array by 2 index arrays

如果我有一组索引存储在两个 Numpy arrays 中,我的目标是根据这些索引 arrays 中的相应索引对给定的输入数组进行切片。 例如。

index_arr1 = np.asarray([2,3,4])
index_arr2 = np.asarray([5,5,6])

input_arr = np.asarray([1,2,3,4,4,5,7,2])

我的代码的 output 应该是[[3,4,4],[4,4],[4,5]]基本上是[input_arr[2:5], input_arr[3:5], input_arr[4:6]]

任何人都可以建议使用 numpy 函数来解决这个问题的方法,并尽可能避免任何 for 循环。

你的意思是:

[input_arr[x:y] for x,y in zip(index_arr1, index_arr2)]

Output:

[array([3, 4, 4]), array([4, 4]), array([4, 5])]

或者,如果您真的想要列表列表:

[[input_arr[x:y].tolist() for x,y in zip(index_arr1, index_arr2)]

Output:

[[3, 4, 4], [4, 4], [4, 5]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM