簡體   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