如何根据 table 值替换数组中的值?

How to replace values in an array based on table values?

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

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) 包含类别。

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

例如数组中所有的1都会被替换为0.5等

在这个例子中,我创建了一个table。但我还有一个单独的 csv 文件,其中包含我创建的 table 中的数据。

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

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

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]]