如果numpy数组的所有元素都不是浮点数,如何引发异常?

时间:2014-09-13 15:00:14

标签: python numpy

就像标题所说的那样,当我发送一个应该是包含浮点数的数组的输入A时,我想引发异常。也就是说,如果A包含至少一个不是float的项,则应返回TypeError。

1 个答案:

答案 0 :(得分:2)

numpy数组中的所有数字都具有相同的dtype。因此,您可以通过查看array.dtype快速查看数组的类型。如果这是float或float64,那么数组中的每个项都将是float类型。

Numpy也可以创建具有类似于普通python列表的混合dtypes的数组,但是array.dtype=np.object,在这种情况下,任何东西都可以在数组元素中。但根据我的经验,只有少数情况下您确实需要np.object

检查dtype是float16float32float64使用

if not issubclass(array.dtype.type, numpy.float): raise TypeError('float type expected')