我有一個大numpy的數組:NumPy的查找(地圖,或點)
array([[32, 32, 99, 9, 45], # A
[99, 45, 9, 45, 32],
[45, 45, 99, 99, 32],
[ 9, 9, 32, 45, 99]])
,並以特定的順序大十歲上下排列的唯一值:
array([ 99, 32, 45, 9]) # B
如何快速(沒有python字典,沒有A
的副本,沒有python循環)替換A
中的值,以便成爲B
中的值的標記?:
array([[1, 1, 0, 3, 2],
[0, 2, 3, 2, 1],
[2, 2, 0, 0, 1],
[3, 3, 1, 2, 0]])
我覺得無法做到這一點從頭開始,也沒有在文檔中找到它。簡單點!
該解決方案適度更快我的用例(B.size << A.size執行),但爲了記錄,@ unutbu的解決方案似乎具有更好的綜合性能。然而,我也沒有提到「就地」解決方案,當我說「替換'A'中的值時,我可能只是暗示需要。 ..我不認爲沒有Cython是可能的。謝謝你們兩位! – Paul 2011-02-22 01:52:09