如果你有一个数组,并且想要使用你定义的字典来转换它,你会怎么做? 输入:
my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
x=np.array(2,6,8,1,.....)
输出:
y=("F","J","A","J",.....)
我们试过这个:
my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
a = np.empty(len(x))
for i in range(0,len(x)):
b=my_dict[x[i,0]]
a[i,0]=b
答案 0 :(得分:2)
为什么你在这里使用numpy是超出我的,请注意你的numpy安排初始化语法是不正确的。但你说输出看起来像
("F","J","A","J",.....)
为此您需要以下内容:
import numpy as np
my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
x=np.array([2,6,8,1,10,11])
[my_dict[i] for i in x]
答案 1 :(得分:0)
不知道为什么numpy但这段代码会起作用:
localPath
答案 2 :(得分:0)
dict.get()
如果密钥不存在,则不会引发KeyNotFoundError异常。
my_dict = {1 : 'J',2:'F', 3:'M',4: 'A',5: 'M',6 : 'J',7:'J', 8:'A',9: 'S',10: '0',11 : 'N',12:'D'}
# With KeyNotFoundError handled
x=[my_dict.get(i) for i in [2,6,8,1,10,11]]