我在用numpy构建一个优化模型,我有一个矩阵,值为1 e-17,还有-1e-17,我想把它们设置为零,在零以上和以下的1 e-8的范围内,这样矩阵系数就不会那么大。
我在另一篇文章中发现了这个a = [0 if a_ > thresh else a_ for a_ in a]
。但是它只适用于非负值。我尝试添加另一个阈值,如下所示:a = [0 if a_ > thresh and a_<thresh2 else a_ for a_ in a]
这给出了一条错误消息:* “一个包含多个元素的数组的真值是不确定的。使用.any()或.all()。"* 我添加了如下代码:a = [0 if (a_ > thresh and a_<thresh2).all() else a_ for a_ in a]
.这个也不起作用。
这个问题有简单的解决方法吗?有什么解决方法吗?
1条答案
按热度按时间t9aqgxwy1#
我认为你想把绝对值和阈值进行比较,这应该是python内置的。
如果我错过了一些关于python处理没有numpy的小数字的东西,这里还有一个
numpy.absolute(a_)
函数。