我正在嘗試根據其值對字典鍵進行排序。所以我用numpy的argsort
來按升序對值進行排序。但是,當我嘗試根據值索引對鍵進行排序時,我得到以下錯誤:使用索引對數組進行排序會導致索引太多
IndexError: too many indices for array
我在做什麼錯在這裏?
import numpy as np
## Map occurences of colours in image
colour_map = {}
#...
colour_map['#fff'] = 15
colour_map['#ccc'] = 99
#...
## Sort colour map from most frequent to least
colours = np.array(colour_map.keys()) # dict_keys(['#fff', '#ccc'])
col_frequencies = np.array(colour_map.values()) # dict_values([15, 99])
indicies = col_frequencies.argsort()
# Error on below line "IndexError: too many indices for array"
colours = colours[indicies[::-1]]
當你調用'.keys()'和'values()'numpy doe不會將它們轉換爲char或整數數組,而是對象數組。 'colours = np.array(list(colour_map.keys()))''後跟'col_frequencies = np.array(list(colour_map.values()))'應該解決這個問題。 – ayhan
@ayhan謝謝修復它。如果你做出答案,我可以接受它。 –
你的代碼可以在'Python 2.7.12'上使用'Numpy 1.13.0'。 – carthurs