gpt4 book ai didi

python - 按值对 numpy 矩阵进行有效着色?

转载 作者:行者123 更新时间:2023-11-28 22:00:55 25 4
gpt4 key购买 nike

我有一个看起来像这样的 numpy ndarray:

[[0, 0.25, 1,  ...., 0.5, 0.23 ],
[0.3, 0.75, 1, ..., 0.5, 0.37 ],
...,
...,
[0, 0.25, 1, ...., 0.5, 0.23 ],
[0.3, 0.75, 1, ..., 0.5, 0.37 ]]

基本上每个值都在 0 - 1.0 范围内

我想将其可视化为位图,目前我有一个非常慢的循环,基本上是这样做的:

for i, row in enumerate(data):
for j, val in enumerate(row):
yield val_to_rgb(val)

然后它将获取 rgb 组件的三元组并对它执行 PIL putdata 并创建一个 PNG。

我需要多次这样做,这种 ghetto 方法很慢,而且着色非常难看。

我的问题是:

是否可以应用一系列矩阵运算来生成包含原始 RGB 值的彩色矩阵?

实际上由两个问题组成:

  1. 从上述矩阵中获取 RGB 元组的最有效变换是什么
  2. 有没有一种“不错”的方法可以将 (0, 1.0) 值转换为彩色表示?

编辑:澄清 - 我希望将其另存为 PNG,而不仅仅是实时查看。原因是其中很多都是在 headless 机器上执行的,然后我事后检查。

当前算法的输出看起来很糟糕:

Colorized Matrix

最佳答案

matplotlib 有 imshow您可以开箱即用的功能。

您所做的通常是通过“矢量化”完成的。您定义一个函数并让 numpy 进行迭代:

vec = np.vectorize(val_to_rgb)
rgb_data = vec(data)

关于python - 按值对 numpy 矩阵进行有效着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com