[英]How do I change id values in a numpy array to a string numpy array with a dictionary
我正在研究將學校名稱的ID轉換為以numpy數組結構的實際學校名稱的腳本。
例如
[[1,2,3],[3,6,7]]
變
[[school-a,school-b,school-c],[school-c,school-f,school-g]
學校和id一起坐在python字典中。
我嘗試這樣做:
for x in np.nditer(finalarray, op_flags=['readwrite']):
x[...] = school_ids.get(int(x))
print(school_ids.get(int(x)))
print(finalarray)
但這給出了錯誤:
ValueError: invalid literal for int() with base 10: 'school-a'
保持numpy數組的結構不變是很重要的,因為我還想到了僅迭代每個項目,但是隨后結構丟失了。
使用這篇文章的解決方案:
x = np.array([[1,1,3], [2,2,2]])
d = {1: 'a', 2:'b', 3:'c'}
np.vectorize(d.get)(x)
>> array([['a', 'a', 'c'],
['b', 'b', 'b']], dtype=object)
假設我有一個命令:
dictt = {
0: 'school-a',
1: 'school-b',
2: 'school-c',
3: 'school-d',
4: 'school-e',
5: 'school-f',
6: 'school-g',
7: 'school-h',
8: 'school-i'
}
_ids = np.array([[1,2,3],[3,6,7]])
school_ids = np.array(list(dictt.values()))
print school_ids[_ids-1]
得到:
[['school-a' 'school-b' 'school-c']
['school-c' 'school-f' 'school-g']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.