numpy.asarray_chkfinite
numpy.asarray_chkfinite(a, dtype=None, order=None) [source]
将输入转换为数组,检查NaN或Infs。
参数 : | a :array_like 输入数据,可以转换为数组的任何形式。 这包括列表,元组列表,元组,元组元组, 列表元组和ndarray。 成功不需要NaN或Infs。 dtype :data-type, 可选 默认情况下,从输入数据中推断出数据类型。 或der : 是使用row-major(C-style) 还是column-major(Fortran-style)内存表示形式。 默认为 |
返回值 : | out :ndarray 数组的解释 如果输入已经是ndarray, 则不执行复制。 如果a是ndarray的子类, 则返回基类ndarray。 |
Raises : | ValueError 如果a包含NaN(非数字)或Inf(无穷大), 则引发ValueError。 |
例子
1)数组中不包含 NaN 或 Inf
import numpy as np # 数组中不包含 NaN 或 Inf arr1 = [1, 2, 3, 4] safe_arr1 = np.asarray_chkfinite(arr1) print(safe_arr1) # 包含 NaN:将抛出 ValueError arr2 = [1, 2, np.nan, 4] try: safe_arr2 = np.asarray_chkfinite(arr2) except ValueError as e: print(f"Error: {e}") # 包含 Inf:将抛出 ValueError arr3 = [1, 2, np.inf, 4] try: safe_arr3 = np.asarray_chkfinite(arr3) except ValueError as e: print(f"Error: {e}")
2)将列表转换为数组
所有元素都是有限的,asarray_chkfinite
等同于 asarray
import numpy as np # 将列表转换为数组,所有元素都是有限的, # asarray_chkfinite 等同于 asarray a = [1, 2] arr = np.asarray_chkfinite(a, dtype=float) print("转换为数组:", arr)import numpy as np # 将列表转换为数组,所有元素都是有限的, # asarray_chkfinite 等同于 asarray a = [1, 2] arr = np.asarray_chkfinite(a, dtype=float) print("转换为数组:", arr)