微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用字典来翻译/替换数组的元素?

如何解决如何使用字典来翻译/替换数组的元素?

这样可以吗 有时,纯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 举报,一经查实,本站将立刻删除。