如果numpy数组元素高于特定阈值,则将其设置为零

如果numpy数组元素高于特定阈值,则将其设置为零,第1张

如果numpy数组元素高于特定阈值,则将其设置为零

通常,列表理解比

for
python中的循环要快(因为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])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存