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