我試圖把數組放在另一個數組的順序。例如,如果我有:指定順序numpy數組
arr1 = np.array(['a', 'b', 'c'])
index = np.array([2, 1, 0])
我期望的結果,ARR2,是[ 'C', 'B', 'A'],使得:
arr2[index[i]] == arr1[i]
我試圖把數組放在另一個數組的順序。例如,如果我有:指定順序numpy數組
arr1 = np.array(['a', 'b', 'c'])
index = np.array([2, 1, 0])
我期望的結果,ARR2,是[ 'C', 'B', 'A'],使得:
arr2[index[i]] == arr1[i]
可以簡單地傳遞選擇器陣列索引字符數組:
>>> import numpy as np
>>> arr1 = np.array(['a', 'b', 'c'])
>>> index = np.array([2, 1, 0])
>>> arr1[index]
array(['c', 'b', 'a'],
dtype='|S1')
嘗試這種情況:
[arr1[i] for i in index]
不返回數組,對於numpy數組效率不高。一般規則:不要將numpy數組視爲python列表。幾乎總是有一個更好的方法來做到這一點與numpy builtins。 – JoshAdel 2012-03-14 18:57:28
或許有在我的代碼中有一個錯誤,但是當我運行這個時,我得到以下關係,而不是期望的關係:arr2 [i] == arr1 [index [i]] – mike 2012-03-14 19:04:23
你能用所需的輸出更新你的問題嗎? – jterrace 2012-03-14 19:06:01
我認爲這個問題可能是在代碼之前的幾行 - 謝謝! – mike 2012-03-14 20:02:32