通常,列表理解比
forpython中的循环要快(因为python知道它不需要关心常规
for循环中可能发生的许多事情):
a = [0 if a_ > thresh else a_ for a_ in a]
但是,正如@unutbu正确指出的那样,numpy允许列表索引,并且通过逐元素比较为您提供索引列表,因此:
super_threshold_indices = a > thresha[super_threshold_indices] = 0
会更快。
通常,将方法应用于数据向量时,请参阅
numpy.ufuncs,其性能通常比使用任何本机机制映射的python函数要好得多。
@unutbu
In [7]: a = np.array([2, 23, 15, 7, 9, 11, 17, 19, 5, 3])In [8]: a[a > 10] = 0In [9]: aOut[9]: array([2, 0, 0, 7, 9, 0, 0, 0, 5, 3])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)