Python 中的 numpy.asarray_chkfinite()

原文:https://www . geesforgeks . org/numpy-asar ray _ chkfinite-in-python/

numpy.asarray_chkfinite() 函数用于我们想要将输入转换为数组时,检查 NaNs(不是数字)或 Infs(英菲尼迪)。输入包括标量、列表、元组列表、元组、元组元组元组、列表元组和数组。

语法: numpy.asarray_chkfinite(arr,dtype =无,order =无)

参数: arr:【array _ like】输入数据,以任何可以转换为浮点型数组的形式。这包括标量、列表、元组列表、元组、元组元组元组、列表元组和数组。 数据类型:默认情况下,数据类型是从输入数据中推断出来的。 顺序:是使用行主(C 风格)还是列主(Fortran 风格)内存表示。默认为“C”。

返回:【ndarray】arr 的数组解释。如果输入已经是数组,则不执行复制。如果 arr 是 ndarray 的子类,则返回基类 ndarray。

代码#1:列表到数组

# Python program explaining
# numpy.asarray_chkfinite() function

import numpy as geek
my_list = [1, 3, 5, 7, 9]

print ("Input  list : ", my_list)

out_arr = geek.asarray_chkfinite(my_list, dtype ='float')
print ("output array from input list : ", out_arr) 

输出:

Input  list :  [1, 3, 5, 7, 9]
output array from input list :  [ 1\.  3\.  5\.  7\.  9.]

代码#2:元组到数组

# Python program explaining
# numpy.asarray_chkfinite() function

import numpy as geek

my_tuple = ([1, 3, 9], [8, 2, 6])

print ("Input  tuple : ", my_tuple)

out_arr = geek.asarray_chkfinite(my_tuple, dtype ='int8') 
print ("output array from input tuple : ", out_arr) 

输出:

Input  tuple :  ([1, 3, 9], [8, 2, 6])
output array from input tuple :  [[1 3 9]
 [8 2 6]]

注意: numpy.asarray_chkfinite()如果 arr 包含 NaN(非数字)或 Inf(无穷大),则函数会提升ValueError

代码#3 :

# Python program explaining
# numpy.asarray_chkfinite() function 
# when value error occurs

import numpy as geek

my_list = [1, 3, 5, 7, geek.inf, geek.nan]

print ("Input  scalar : ", my_scalar)

out_arr = geek.asarray_chkfinite(my_list) 
print ("output fortan array from input scalar : ", out_arr) 

输出:

ValueError: array must not contain infs or NaNs