首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Numpy向矢量化标量函数调用

使用Numpy向矢量化标量函数调用
EN

Stack Overflow用户
提问于 2015-03-07 16:51:18
回答 1查看 219关注 0票数 2

我想使用彩色模块在RGB和HSL之间进行转换。然而,彩色API是基于标量的。我想知道如何在不使用for-循环的情况下将其向量化,这样我就可以执行以下操作

代码语言:javascript
复制
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, :])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-07 17:00:03

您可以使用np.vectorize,但正如lolopop所指出的,这只会增加语法糖;它不会使隐式循环变得更快:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28917362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档