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)