检查二维数组中列表的存在

阿卜杜勒·卡迪尔|

我有一个二维数组。每行有3个值(不一定是唯一的),例如:

[ [3, 4, 1],
  [8, 1, 3],
  [5, 6, 5] ]

有一个过程可以生成3个数字的列表。我检查此列表是否已经存在于我的数组中(相同编号和相同序列),如果存在,请忽略它,如果不存在,则将其添加到数组中。此过程运行多次。

我检查存在的方式是通过循环:

c = 0
for s in range(len(l)):
    if np.array_equal(l[s], new):
        c = 1
        break
if c == 0:
    l = np.append(l, new).reshape(-1, 3)

其中l是我的列表,new是该过程生成的列表。

我的问题是,有没有一种方法可以不使用循环进行检查。如果列表太大(如100k +行),则检查过程将花费太多时间。请指导。

迪卡卡(Divakar)

您可以broadcasting一次性完成所有行的矢量化检查,如下所示-

if ~(np.all(l == new,1)).any():
    l = np.append(l, new).reshape(-1, 3)

样品运行-

In [288]: l
Out[288]: 
array([[4, 4, 0],
       [1, 4, 1],
       [0, 4, 4],
       [4, 0, 4],
       [2, 4, 2]])

In [289]: new
Out[289]: [7, 0, 4]

In [290]: if ~(np.all(l == new,1)).any():
     ...:     l = np.append(l, new).reshape(-1, 3)
     ...:     

In [291]: l
Out[291]: 
array([[4, 4, 0],
       [1, 4, 1],
       [0, 4, 4],
       [4, 0, 4],
       [2, 4, 2],
       [7, 0, 4]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查二维列表(列表列表)的特定列中是否存在值

来自分类Dev

检查值是否存在于二维选项卡(数组,vb)中

来自分类Dev

检查二维列表中列表的成员资格

来自分类Dev

检查PHP数组键中的二维数组

来自分类Dev

二维数组中缺少数组检查-Java

来自分类Dev

Java:如何检查二维列表/数组中的布尔条件?

来自分类Dev

将二维数组保存在指针数组中

来自分类Dev

在PHP中检查二维数组的值

来自分类Dev

检查二维数组中的值是否等于“#”

来自分类Dev

检查二维数组中的值是否为空

来自分类Dev

在PHP中检查二维数组的值

来自分类Dev

关于检查二维数组中的字段[C ++]

来自分类Dev

检查二维数组中的相邻值

来自分类Dev

检查二维数组中每个邻居的最快方法

来自分类Dev

Python的二维数组中是否存在别名?

来自分类Dev

R中的二维数组列表上的矩阵乘法

来自分类Dev

如何从二维数组列表中获取价值

来自分类Dev

二维数组列表数组混淆

来自分类Dev

如何对角检查二维数组?

来自分类Dev

如何检查二维数组是否在另一个二维数组中

来自分类Dev

如何检查二维数组是否在另一个二维数组中

来自分类Dev

乘以二维数组列表

来自分类Dev

二维数组的numpy列表乘法

来自分类Dev

索引二维数组/列表

来自分类Dev

用列表填充二维数组

来自分类Dev

二维数组好友列表

来自分类Dev

一维数组到二维数组的列表

来自分类Dev

Javascript:检查二维数组是否在第一维中包含元素

来自分类Dev

检查二维列表的索引并根据二维列表打印出索引