簡體   English   中英

從NumPy中的索引列表中索引多維數組

[英]Indexing a multidimensional array from a list of indices in NumPy

說我有以下形式的數組

array = np.random.rand(50, 50, 2)

我有一個索引元組列表,其中將包含重復項:

indices = [(0, 2), (0, 3), (0, 2), (1, 1), (0, 3), (0, 2)]

我試圖找出最好的方法來創建從索引中獲取的數組元素的散點圖,其中數組的第3維給出要繪制點的x和y坐標。 我嘗試了幾種不同的方法,但意識到由於廣播的工作方式,簡單的數組索引無法滿足我的需求。 我可以通過遍歷數組並將要添加的點添加到新數組中來實現此目的,但是這讓我感到異常,我想確保自己學習正確的習慣。

我有一個解決方案,受到以上hpaulj的啟發。 我可以將索引的元組列表轉換為數組,並使用結果數組的長維度來索引我的大型數組,如下所示:

index_array = np.array(indices)
reduced_array = array[index_array[:,0],index_array[:,1],:]

然后使用reduce_array作為散點圖的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM