[英]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.