gpt4 book ai didi

python - 使用 Numpy 向量化标量函数调用

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:41 25 4
gpt4 key购买 nike

我想使用 colorsys 模块在 RGB 和 HSL 之间进行转换。然而,colorsys API 是基于标量的。我想知道如何在没有 for 循环的情况下对其进行矢量化,以便我可以做类似的事情

hsl = np.vstack([np.ones((1, 256)), np.ones((1, 256,)), np.ones((1, 256,))]).transpose()
rgb = colorsys.hls_to_rgb(hsl[0, :], hsl[1, :], hsl[2, :])

最佳答案

您可以使用np.vectorize,但正如 lolopop 指出的那样,这只是添加了语法糖;它不会使隐式循环更快:

import colorsys
import numpy as np
rgb_to_hls = np.vectorize(colorsys.rgb_to_hls)
hls_to_rgb = np.vectorize(colorsys.hls_to_rgb)

arr = np.random.random((2, 2, 3)) * 255
r, g, b = arr[:, :, 0], arr[:, :, 1], arr[:, :, 2]
h, l, s = rgb_to_hls(r, g, b)
r2, g2, b2 = hls_to_rgb(h, l, s)
arr2 = np.dstack([r2, g2, b2])
assert np.allclose(arr, arr2)

关于python - 使用 Numpy 向量化标量函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28917362/

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