我有一个带有rgb像素数据的2d数组(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.unique
和np.transpose
与np.reshape
一起使用,但未能获得所需的结果。
将阵列重塑为2D,然后将np.unique
与axis=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]]
这个怎么样?
import itertools
np.unique(np.array(list(itertools.chain(*arr))), axis=0)
array([[ 3, 0, 2],
[255, 255, 255]])