gpt4 book ai didi

python-3.x - 更改 ndarray 的维度并乘以内容

转载 作者:行者123 更新时间:2023-12-02 00:54:29 24 4
gpt4 key购买 nike

我有一个 MxN ndarray,其中包含这些数组中的 True 和 False 值,我想将它们绘制为图像。目标是将数组转换为枕头图像,每个真值都作为常量颜色。我能够通过遍历每个像素并通过比较单独更改它们并在空白图像上绘制像素来使其工作,但这种方法太慢了。

# img is a PIL image result
# image is the MxN ndarray

pix = img.load()
for x in range(image.shape[0]):
for y in range(image.shape[1]):
if image[x, y]:
pix[y, x] = (255, 0, 0)

有没有办法通过将元组直接替换为真值来将 ndarray 更改为 MxNx3?

最佳答案

如果您有 True/False 二维数组和颜色标签,例如 [255,255,255],以下将起作用:

colored = np.expand_dims(bool_array_2d,axis=-1)*np.array([255,255,255])

用一个虚拟示例来说明:在下面的代码中,我创建了一个由 0 和 1 组成的随机矩阵,然后将 1 变为白色 ([255,255,255])。

import numpy as np
import matplotlib.pyplot as plt

array = np.random.randint(0,2, (100,100))
colors = np.array([255,255,255])
colored = np.expand_dims(array, axis=-1)*colors

plt.imshow(colored)

希望对您有所帮助

关于python-3.x - 更改 ndarray 的维度并乘以内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55465798/

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