python - 如何用python中的列表字符串替换numpy数组的数字
问题描述
我有一个 numpy 数组,想用一些字符串替换它的值。我检查了这个解决方案,但无法解决我的问题。我的字符串在一个列表中:
names=['base', 'middle', 'top']
我的列表有三个字符串,这意味着我的数组中也有三个数字:
import numpy as np
numbers=np.array([[3., 1., 2., 2.], [1., 2., 3., 1.]])
为了用数字映射名字,我有这个逻辑:从第一个名字到最后一个名字,数字会减少。我的意思是名字匹配最高的数字 ( 'base' : 3.
),第二大的名字 ( 'middle' : 2.
) 和姓氏等于最低的 ( 'top' : 1.
)。最后我想让我的数组为:
subs_arr= np.array([['base', 'top', 'middle', 'middle'], ['top', 'middle', 'base', 'top']])
有什么方法可以在 python 中自动完成(不需要用数字映射名称)?我非常感谢您提前提供的任何帮助。
解决方案
像这样的东西怎么样:
import numpy as np
numbers = np.array([[3., 1., 2., 2.], [1., 2., 3., 1.]]).astype(int)-1
names = np.array(['top', 'middle', 'base'])
subs_arr = names[numbers]
输出:
subs_arr =
[['base' 'top' 'middle' 'middle']
['top' 'middle' 'base' 'top']]
推荐阅读
- node.js - 嵌套对象数组的 MongoDB 查询优化
- flutter - 在颤动中将故事项目更改为动态小部件
- javascript - 无法使用 Material-UI Drawer 为页面创建页脚
- html - CSS跨度网格调整大小?
- python - Django静态文件未显示
- jmeter - 在JMeter中随机提取JSR223后处理器中的对应值
- appium - 如何确保在杀死 Appium 后释放 UIAutmator2 的端口 8200..8299?
- karate - 如何在 karate-dsl 中参数化外部保存的 sql 查询
- angular - 是否可以有多个采摘运算符(rxjs)
- sql - 一个查询/ AdventureWorks2017 任务中的 COUNT 和 MAX/MIN 和(HAVING?)