x
- список; логический массив (в данном случае любой массив) нельзя использовать для индексации списка.
In [244]: x = [16, 18, 16, 14, 12, 12]
In [245]: x[-1] = np.nan
In [246]: mask = ~np.isnan(x)
In [247]: x[mask]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-247-fee3ce9a3be1> in <module>
----> 1 x[mask]
TypeError: only integer scalar arrays can be converted to a scalar index
In [248]: mask
Out[248]: array([ True, True, True, True, True, False])
Эта ошибка произошла до вызова chi2
.
Теперь, если бы x
было ndarray
, это могло бы просто сработать :)
In [249]: x = np.array([16, 18, 16, 14, 12, 12])
In [250]: x[mask]
Out[250]: array([16, 18, 16, 14, 12])