python - 将 NumPy 数组条目映射到字典值
问题描述
我目前有一个如下所示的 NumPy 数组:
>>> print(a)
[[ 1. 26.9952 30.6501 10.06952 1.61731]
[ 2. 26.9952 30.6501 10.06952 1.61731]
[ 0. 26.9952 30.6501 10.06952 1.61731]
[ 2. 26.9952 30.6501 10.06952 1.61731]
[ 3. 26.9952 30.6501 10.06952 1.61731]
[ 2. 26.9952 30.6501 10.06952 1.61731]
[ 1. 26.9952 30.6501 10.06952 1.61731]
[ 2. 26.9952 30.6501 10.06952 1.61731]
[ 3. 26.9952 30.6501 10.06952 1.61731]
[ 2. 26.9952 30.6501 10.06952 1.61731]]
我有一本看起来像这样的字典:
map_dict = {0.0: 'a', 1.0: 'b', 2.0: 'c', 3.0: 'd'}
我想要做的是将 NumPy 数组第一列中的所有值转换a
为map_dict
. 有没有一种有效的方法可以做到这一点?我正在使用的当前方法是通过一个 for 循环并在我进行时迭代地替换这些值。
解决方案
你可以试试np.vectorize
:
>>> import numpy as np
>>> a = np.arange(12).reshape(4,3)
>>> a
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
>>> map_dict = {0.0: 'a', 3.0: 'b', 6.0: 'c', 9.0: 'd'}
>>> a = a.astype(object)
>>> a[:,0] = np.vectorize(map_dict.get)(a[:,0])
>>> a
array([['a', 1, 2],
['b', 4, 5],
['c', 7, 8],
['d', 10, 11]], dtype=object)
推荐阅读
- python - 打印功能和数据框视图/复制
- c++ - 更改 unique_ptr 指向的指针是未定义的行为吗?
- db2 - 执行选择查询时出现 DB2 性能问题
- php - 从 PHP 到 SQL Server 的连接失败并显示“用户 xxx 登录失败”
- mysql - 连接多个表时遇到问题。预期结果与实际结果非常接近
- kubernetes - kubectl can-i 命令的语法是什么?
- javascript - 如何使用 Jest/Enzyme 在功能性 React 组件中测试 lambda 函数?
- swift - 如何使用 Typealias 或 Closure 在 swift 中定义一个带有 name 参数的常量?
- php - 在自定义帖子类型中使用 ACF 复选框字段来过滤不同自定义帖子类型的结果
- android - 带有数据绑定的 Android 分页库