numpy.nan_to_num#
- numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)[источник]#
Замените NaN нулем, а бесконечность большими конечными числами (поведение по умолчанию) или числами, определенными пользователем, с помощью
nan, posinf и/или neginf ключевые слова.Если x является неточным, NaN заменяется нулём или пользовательским значением в
nanключевое слово, бесконечность заменяется наибольшими конечными значениями с плавающей точкой, представимымиx.dtypeили пользовательским значением в posinf ключевое слово и -бесконечность заменяется на наименьшие конечные значения с плавающей точкой, представимыеx.dtypeили пользовательским значением в neginf ключевое слово.Для комплексных типов данных вышеуказанное применяется к каждой из вещественной и мнимой компонент x отдельно.
Если x не является неточным, тогда замены не производятся.
- Параметры:
- xскаляр или array_like
Входные данные.
- copybool, необязательно
Создавать ли копию x (True) или заменить значения на месте (False). Операция на месте происходит только если приведение к массиву не требует копирования. По умолчанию True.
- nanint, float или bool или array_like из int, float или bool, опционально
Значения, используемые для заполнения значений NaN. Если значения не переданы, то значения NaN будут заменены на 0.0.
- posinfint, float или bool или array_like из int, float или bool, опционально
Значения, используемые для заполнения положительных бесконечностей. Если значения не переданы, то положительные бесконечности будут заменены очень большим числом.
- neginfint, float или bool или array_like из int, float или bool, опционально
Значения, используемые для заполнения значений отрицательной бесконечности. Если значения не переданы, то значения отрицательной бесконечности будут заменены очень малым (или отрицательным) числом.
- Возвращает:
- выходndarray
x, с замененными неконечными значениями. Если
copyравно False, это может быть x самого себя.
Смотрите также
isinfПоказывает, какие элементы являются положительной или отрицательной бесконечностью.
isneginfПоказывает, какие элементы являются отрицательной бесконечностью.
isposinfПоказывает, какие элементы являются положительной бесконечностью.
isnanПоказывает, какие элементы не являются числом (NaN).
isfiniteПоказывает, какие элементы конечны (не NaN, не бесконечность)
Примечания
NumPy использует стандарт IEEE для двоичной арифметики с плавающей точкой (IEEE 754). Это означает, что Not a Number не эквивалентно бесконечности.
Примеры
>>> import numpy as np >>> np.nan_to_num(np.inf) 1.7976931348623157e+308 >>> np.nan_to_num(-np.inf) -1.7976931348623157e+308 >>> np.nan_to_num(np.nan) 0.0 >>> x = np.array([np.inf, -np.inf, np.nan, -128, 128]) >>> np.nan_to_num(x) array([ 1.79769313e+308, -1.79769313e+308, 0.00000000e+000, # may vary -1.28000000e+002, 1.28000000e+002]) >>> np.nan_to_num(x, nan=-9999, posinf=33333333, neginf=33333333) array([ 3.3333333e+07, 3.3333333e+07, -9.9990000e+03, -1.2800000e+02, 1.2800000e+02]) >>> nan = np.array([11, 12, -9999, 13, 14]) >>> posinf = np.array([33333333, 11, 12, 13, 14]) >>> neginf = np.array([11, 33333333, 12, 13, 14]) >>> np.nan_to_num(x, nan=nan, posinf=posinf, neginf=neginf) array([ 3.3333333e+07, 3.3333333e+07, -9.9990000e+03, -1.2800000e+02, 1.2800000e+02]) >>> y = np.array([complex(np.inf, np.nan), np.nan, complex(np.nan, np.inf)]) array([ 1.79769313e+308, -1.79769313e+308, 0.00000000e+000, # may vary -1.28000000e+002, 1.28000000e+002]) >>> np.nan_to_num(y) array([ 1.79769313e+308 +0.00000000e+000j, # may vary 0.00000000e+000 +0.00000000e+000j, 0.00000000e+000 +1.79769313e+308j]) >>> np.nan_to_num(y, nan=111111, posinf=222222) array([222222.+111111.j, 111111. +0.j, 111111.+222222.j]) >>> nan = np.array([11, 12, 13]) >>> posinf = np.array([21, 22, 23]) >>> neginf = np.array([31, 32, 33]) >>> np.nan_to_num(y, nan=nan, posinf=posinf, neginf=neginf) array([21.+11.j, 12. +0.j, 13.+23.j])