如何解决如何使用字典来翻译/替换数组的元素?
这样可以吗 有时,纯Python是处理此类问题的一种好方法。下面将构建翻译列表(轻松转换回numpy数组)和合并的输出。
import numpy as np
abc_array = np.array(['B', 'D', 'A', 'F', 'H', 'I', 'Z', 'J'])
transdict = {'A': 'Adelaide',
'B': 'Bombay',
'C': 'Cologne',
'D': 'Dresden',
'E': 'Erlangen',
'F': 'Formosa',
'G': 'Gdansk',
'H': 'Hague',
'I': 'Inchon',
'J': 'Jakarta',
'Z': 'Zambia'
}
phoenetic = [transdict[letter] for letter in abc_array]
print ' '.join(phoenetic)
输出是:
Bombay Dresden Adelaide Formosa Hague Inchon Zambia Jakarta
解决方法
我有一个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'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。