【问题标题】:How to replace values in an array based on table values?如何根据表值替换数组中的值?
【发布时间】:2021-07-17 23:13:21
【问题描述】:

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

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 阵列上应用它。

【问题讨论】:

    标签: python python-3.x list numpy tabulate


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多