## Question

Asked By – Ethan Waldie

I am using sklearn and having a problem with the affinity propagation. I have built an input matrix and I keep getting the following error.

```
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
```

I have run

```
np.isnan(mat.any()) #and gets False
np.isfinite(mat.all()) #and gets True
```

I tried using

```
mat[np.isfinite(mat) == True] = 0
```

to remove the infinite values but this did not work either.

What can I do to get rid of the infinite values in my matrix, so that I can use the affinity propagation algorithm?

I am using anaconda and python 2.7.9.

**Now we will see solution for issue: sklearn error ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64’) **

## Answer

This might happen inside scikit, and it depends on what you’re doing. I recommend reading the documentation for the functions you’re using. You might be using one which depends e.g. on your matrix being positive definite and not fulfilling that criteria.

**EDIT**: How could I miss that:

```
np.isnan(mat.any()) #and gets False
np.isfinite(mat.all()) #and gets True
```

is obviously wrong. Right would be:

```
np.any(np.isnan(mat))
```

and

```
np.all(np.isfinite(mat))
```

You want to check whether any of the elements are NaN, and not whether the return value of the `any`

function is a number…

This question is answered By – Marcus Müller

**This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 **