我有一个numpy的阵列,其具有数百其是大写字母的元素,在没有特定的顺序如何使用字典翻译/替换数组的元素?
import numpy as np
abc_array = np.array(['B', 'D', 'A', 'F', 'H', 'I', 'Z', 'J', ...])
在此numpy.ndarray
每个元素是一个numpy.string_
。
我也有一个“翻译词典”,以键/值对,这样的大写字母对应于一个城市
transdict = {'A': 'Adelaide', 'B': 'Bombay', 'C': 'Cologne',...}
只有26个对字典中的transdict
,但也有数以百计的信件在numpy数组中,我必须翻译。
什么是最有效的方法来做到这一点?
我考虑过使用numpy.core.defchararray.replace(a, old, new, count=None)[source]
,但是这会返回ValueError
,因为numpy数组的大小与字典键/值不同。
AttributeError: 'numpy.ndarray' object has no attribute 'translate'
您是否尝试过任何有效的代码,无论它*效率低下?样本数据的预期输出是什么? – Divakar
@Divakar实际上,我最好的猜测是使用'numpy.core.defchararray.replace()',但这是行不通的。所以是的,我不知道该怎么做。 – ShanZhengYang
对于'old',你需要使用'transdict.keys()',对于'new'你需要使用'transdict.values()',然后'.replace(abc_array,old,new)'应该可以工作 –