gpt4 book ai didi

arrays - 有没有一种方便的方法可以将查找表应用于 numpy 中的大型数组?

转载 作者:行者123 更新时间:2023-12-03 10:20:58 25 4
gpt4 key购买 nike

我有一个图像读入 numpy,在我的结果数组中有相当多的像素。

我计算了一个包含 256 个值的查找表。现在我想做以下事情:

for i in image.rows:
for j in image.cols:
mapped_image[i,j] = lut[image[i,j]]

是的,这基本上就是 lut 所做的。
唯一的问题是:我想高效地完成它,在 python 中调用该循环会让我等待几秒钟才能完成。

我知道 numpy.vectorize() ,它只是一个调用相同python代码的便捷函数。

最佳答案

您可以使用 image索引到 lut如果 lut一维 .
这是在 NumPy 中建立索引的入门:
http://www.scipy.org/Tentative_NumPy_Tutorial#head-864862d3f2bb4c32f04260fac61eb4ef34788c4c

In [54]: lut = np.arange(10) * 10

In [55]: img = np.random.randint(0,9,size=(3,3))

In [56]: lut
Out[56]: array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])

In [57]: img
Out[57]:
array([[2, 2, 4],
[1, 3, 0],
[4, 3, 1]])

In [58]: lut[img]
Out[58]:
array([[20, 20, 40],
[10, 30, 0],
[40, 30, 10]])

还要注意索引从 0 开始

关于arrays - 有没有一种方便的方法可以将查找表应用于 numpy 中的大型数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448763/

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