# Numpy Set Values In Range Above And Below Zero To Zero

I’m building a optimization model with numpy and i have matrices with the values of 1e-17 and also -1e-17 i would like to set them to zero in a range of lets say 1e-8 above and below zero so that the matrix coefficients are not as big.

I found this
`a = [0 if a_ > thresh else a_ for a_ in a]` in another post. But this only works for non negative values.
I tried adding another threshhold like this:
`a = [0 if a_ > thresh and a_<thresh2 else a_ for a_ in a]`

This gave an error message: "The truth value of an array with more than one element is amniguous. Use a.any() or a.all()."
I added this like this: `a = [0 if (a_ > thresh and a_<thresh2).all() else a_ for a_ in a]`.
This did not work either.

Is there a simple solution to this problem? Any ideas on how to solve this?

### >Solution :

I think you want the absolute value to be compared to the threshold?
It should be a builtin in python.

``````
a = [0 if abs(a_) > thresh else a_ for a_ in a]
``````

In case I’m missing something about python’s treatment of small numbers without numpy, there’s also a `numpy.absolute(a_)` function.