首页 > 解决方案 > 如何根据表值替换数组中的值?

问题描述

我有以下脚本和示例数据:

import numpy as np
from tabulate import tabulate
 

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])


table = [['cat','value'],[1,0.5],[2,0.5],[3,0.5],[4,0.5],[6,0.05],[7,0.025],[8,0.005],[9,0.123]]
print(tabulate(table))

输出:

cat  value
1    0.5
2    0.5
3    0.5
4    0.5
6    0.05
7    0.025
8    0.005
9    0.123

数组 ( a) 包含类别。

如何用"value"表中列中的数据替换数组中的类别?

例如,数组中的所有 1 都将替换为 0.5 等。

在此示例中,我创建了一个表。但我也有一个单独的 csv 文件,其中包含我创建的表中的数据。

我将在 1200 x 1200 阵列上应用它。

标签: pythonpython-3.xlistnumpytabulate

解决方案


您可以创建一个映射字典,然后将此映射应用于您的列表。例如:

mapping = dict(table[1:])

out = [[mapping.get(v, v) for v in l] for l in a]
print(out)

印刷:

[[0.5, 0.5, 0.5], [0.5, 5, 0.05], [0.025, 0.005, 0.123]]

推荐阅读