Для преобразования NaN в ноль: numpy.nan_to_num(arr)
, работает как с массивами, так и с отдельными значениями.(Используйте аргумент ..., copy=False
, чтобы избежать потери памяти, т. Е. Работать на месте.)
Таким образом, чтобы выполнить замену NaN, а затем преобразование типа: numpy.nan_to_num(arr).astype(np.int)
from numpy import array, nan
arr = np.array([[5., nan, nan], [nan, 6., nan], [nan, 7., 5.]])
arr = np.nan_to_num(arr, copy=False).astype(np.int)
array([[5, 0, 0],
[0, 6, 0],
[0, 7, 5]])
Чтобы преобразовать NaN в любое другое определенное значение: Вы не сказали, на какое значение хотите заменить NaN.Если вы хотите заменить значение, отличное от нуля, вам нужно сделать это с помощью логического индексирования: arr[np.isnan(arr)] = -99
затем .astype(np.int)
.