【发布时间】:2022-01-20 03:58:58
【问题描述】:
我有一个形状为[1080, 1920, 4] 的 3-D 数组,最后一个轴代表图片的 RGBA 通道,我有一个从 RGBA 值到 int 的 dict 映射,我想使用 np.vectorize 来转换这个数组到形状为[1080, 1920] 的二维数组,如何将数组作为二维数组传递,最后一维是向量化函数的列表?
array = [[[112, 25, 235, 255],
[112, 25, 235, 255],
[112, 25, 235, 255],
...,
[ 35, 35, 30, 255],
[ 41, 40, 37, 255],
[ 39, 41, 37, 255]]
...,
[ 35, 35, 30, 255],
[ 41, 40, 37, 255],
[ 39, 41, 37, 255]]]
dic = {(35, 35, 30, 255): 1, (41, 40, 37, 255): 2}
np.vectorize(lambda x: dic.get(tuple(x)))()
我应该将什么传递给最后一个()
【问题讨论】:
-
你的意思是需要将3D列表扁平化成2D列表,对吧,然后传入函数中,对吧?
-
np.vectorize是一个美化的for循环。您对其他方法持开放态度吗? -
听起来像
array.reshape(-1, 4)。