【发布时间】:2015-10-09 13:01:19
【问题描述】:
我有一个二维数字数组。每行有 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+ 行,检查过程会花费太多时间。请指导。
【问题讨论】:
标签: arrays python-3.x numpy vectorization