如何从二维NumPy数组中获得唯一的像素?

yzxexxkh  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(138)

我有2维阵列与RGB像素数据(2行与3像素在一行)。

[[[255, 255, 255],[3, 0, 2],[255, 255, 255]],[[255, 255, 255],[3, 0, 2],[255, 255, 255]]]

我怎样才能得到唯一的像素?我想要得到

[[255, 255, 255], [3, 0, 2]]

我正在尝试将np.uniquenp.transposenp.reshape一起使用,但我无法获得想要的结果。

lp0sw83n

lp0sw83n1#

将阵列重塑为2D,然后将np.uniqueaxis=0配合使用

arr = np.array([[[255, 255, 255],[3, 0, 2],[255, 255, 255]],[[255, 255, 255],[3, 0, 2],[255, 255, 255]]])
shape = arr.shape
arr = arr.reshape((shape[0] * shape[1], shape[2]))
print(np.unique(arr, axis=0))

输出

[[  3   0   2]
 [255 255 255]]
d4so4syb

d4so4syb2#

这个怎么样?

import itertools
np.unique(np.array(list(itertools.chain(*arr))), axis=0)
array([[  3,   0,   2],
       [255, 255, 255]])

相关问题