使用字典创建映射。
names_A = ['David', 'Mark', 'Brian', 'Michael']
data_A = [4,3,1,2]
names_B = ['Mark', 'David', 'Michael', 'Brian']
data_B = [51,30,11,29]
lookup_a = dict(zip(names_A, data_A))
lookup_b = dict(zip(names_B, data_B))
mapping = {value_a: lookup_b[key_a] for key_a, value_a in lookup_a.items()}
现在钥匙在mapping
将是来自的数字data_A
与相应的值data_B
.
我从未与numpy
但现在看来更换是一件很容易的事。
仅举一个简单列表的例子:
data = [4, 4, 3, 3, 2, 2, 1, 1, 3, 3]
data = [mapping[value] for value in data]
data
now is [30, 30, 51, 51, 11, 11, 29, 29, 51, 51]
.
安装 numpy 后编辑
如果您创建了映射字典,您可以执行以下操作:
data = np.array([[4, 4, 3, 3, 2, 2, 1, 1, 3, 3],
[4, 3, 3, 3, 2, 2, 3, 1, 3, 1],
[4, 2, 3, 3, 2, 2, 4, 1, 4, 3]])
for row in data:
for index, value in enumerate(row):
row[index] = mapping[value]
data
is now:
[[32 30 51 51 11 11 29 29 51 51]
[30 51 51 51 11 11 51 29 51 29]
[30 11 51 51 11 11 30 29 30 51]]
由于我之前从未使用过 numpy ,可能会有更简单(或更Pythonic)的解决方案,但至少这做了它应该做的事情。