我有两个numpy数组,x
和{x
是有序的,但有些值是相同的。在
任务是在x
中的值相同时删除x
和{
def createMask(x):
idx = np.empty(x.shape, dtype=bool)
for i in xrange(len(x)-1):
if x[i+1] == x[i]:
idx[i] = False
return idx
idx = createMask(x)
x = x[idx]
y = y[idx]
此方法工作正常,但速度慢(705ms,使用%timeit
)。而且我觉得这看起来很笨拙。有没有更优雅高效的方法(我肯定有)。在
更新最佳答案
第二种方法是
^{pr2}$第三种方法是
idx = x[:-1] == x[1:]
结果是(使用ipython的%timeit
):
第一次方法:751ms
秒方法:618ms
第三次方法:3.63ms
这两种方法都归功于mtitan8。在
我相信最快的方法是使用numpy的
==
数组运算符比较x
:在我的机器上,使用
^{pr2}$x
和[0,100]中的一百万个随机整数相关问题 更多 >
编程相关推荐