我想根據值將列表映射到數字。更優雅的方法根據值爲列表編號
例如:
['aa', 'b', 'b', 'c', 'aa', 'b', 'a'] -> [0, 1, 1, 2, 0, 1, 3]
我試圖通過使用numpy的和映射字典來實現這一目標。
def number(lst):
x = np.array(lst)
unique_names = list(np.unique(x))
mapping = dict(zip(unique_names, range(len(unique_names)))) # Translating dict
map_func = np.vectorize(lambda name: d[name])
return map_func(x)
有沒有更優雅/更快的方式來做到這一點?
更新:獎金問題 - 與維護的訂單一起做。
[轉換字母至數在Python]可能的複製(http://stackoverflow.com/questions/4528982/convert-alphabet-letters-to-number-in-蟒蛇) –
他們不一定是字母......我的意思是一般情況 – blancmange
但你似乎也希望保持秩序看預期的樣品輸出,這是不是用func編號實現的,對吧? – Divakar