在numpy中将非常低的值设置为零

在numpy中将非常低的值设置为零,第1张

在numpy中将非常低的值设置为零

嗯 我对此并不满意,但这似乎可行:

>>> a = np.array([0 +  0.5j, 0.25 + 1.2352444e-24j, 0.25+ 0j, 2.46519033e-32 + 0j])>>> aarray([  0.00000000e+00 +5.00000000e-01j,         2.50000000e-01 +1.23524440e-24j,         2.50000000e-01 +0.00000000e+00j,   2.46519033e-32 +0.00000000e+00j])>>> tol = 1e-16>>> a.real[abs(a.real) < tol] = 0.0>>> a.imag[abs(a.imag) < tol] = 0.0>>> aarray([ 0.00+0.5j,  0.25+0.j ,  0.25+0.j ,  0.00+0.j ])

您可以根据自己的问题选择容忍度。我通常使用一个数量级以上

>>> np.finfo(np.float).eps2.2204460492503131e-16

但这取决于问题。



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

原文地址:https://54852.com/zaji/5647181.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存