python - 如何使用字典在 python 中转换数组?
问题描述
作为一个玩具示例,假设我有:
import numpy as np
np.array([['dog','sheep','sheep','dog','cat'],
['dog','dog','sheep','cat','cat']])
dict = {'dog':5,'cat':1,'sheep':3}
我想找到一种有效的方法来构造我根据字典替换元素的所需数组。
(真正的字典是元素周期表,真正的数组有数千个元素)
解决方案
您可以vectorize
使用dict的get
方法。
>>> import numpy as np
>>> a = np.array([['dog','sheep','sheep','dog','cat'],
... ['dog','dog','sheep','cat','cat']])
>>> d = {'dog':5,'cat':1,'sheep':3}
>>>
>>> np.vectorize(d.get)(a)
array([[5, 3, 3, 5, 1],
[5, 5, 3, 1, 1]])
我已重命名为dict
,d
因为您不应该dict
用自己的变量隐藏内置名称。
推荐阅读
- groovy - 调用 jmeter 函数时出错 ${__time(MMddHHmmss,"variable"}
- python - 在 Windows 10 执行之间释放 Tensorflow GPU 2.x 内存 python
- python - spark-nlp:DocumentAssembler 初始化失败,出现“java.lang.NoClassDefFoundError: org/apache/spark/ml/util/MLWritable$class”
- azure - Azure 应用服务中的多层应用的身份验证问题
- reactjs - this.state.projects.map 不是一个函数 - React
- javascript - 删除带有索引js jquery的对象数组
- azure - 在 VSCODE 活动栏上丢失了我的 Azure 图标
- html - MIME 类型不匹配
- java - 动态创建队列并将其绑定到单个 Exchange
- .net-core - Fluent NhiberNate .net core 3.1 with sql server