元组的两个 numpy 数组之间的区别



我有 numpy ndarraywall它由元组组成brick = (x, y, w, h).

它看起来像

[[317. 276.  17.  12.]
[317. 276.  17.  12.]
[317. 276.  17.  12.]
[248. 276.  25.  17.]
[320. 274.  18.  13.]
[353. 273.  15.  11.]
[377. 272.  17.  11.]
[  0. 271.  61.  71.]
[ 21. 266.  75.  49.]
[228. 280.  20.  14.]
[306. 245.  15.  20.]
[519. 239.  18.  18.]
[482. 252.  22.  10.]]

我想消除相同的,因为您可以看到前三个是相同的。之后,每次新的迭代(相机回调 - 帧接收(我都有新的wall.我想将其与旧的进行比较并找到差异,基本上找到所有不同的brick.不幸的是,交叉/独特或其他严格的方法对我不起作用。任何提示将不胜感激。

从您的问题和评论来看,您似乎想沿第一个轴删除唯一元素。您可以通过np.unique指定axis=0来执行此操作:

np.unique(wall, axis=0)

如果wall.dtype is object并存储某种brick对象,只要它们支持相等性检查==(__eq__(,就可以只用np.unique(a)

Pandas 是一个很好的库。可能不是最有效的方法,但它可以完成工作。

import pandas as pd
tmp = [
[317, 276,  17,  12.],
[317, 276,  17,  12.],
[317, 276,  17,  12.],
[248, 276,  25,  17.],
[320, 274,  18,  13.],
[353, 273,  15,  11.],
[377, 272,  17,  11.],
[  0, 271,  61,  71.],
[ 21, 266,  75,  49.],
[228, 280,  20,  14.],
[306, 245,  15,  20.],
[519, 239,  18,  18.],
[482, 252,  22,  10.]
]
df = pd.DataFrame(tmp).drop_duplicates()

输出为:

0   1   2   3
0   317 276 17  12.0
3   248 276 25  17.0
4   320 274 18  13.0
5   353 273 15  11.0
6   377 272 17  11.0
7   0   271 61  71.0
8   21  266 75  49.0
9   228 280 20  14.0
10  306 245 15  20.0
11  519 239 18  18.0
12  482 252 22  10.0

相关内容

  • 没有找到相关文章

最新更新