如何键入检查1维ndarray的每个元素

时间:2014-07-03 21:40:05

标签: python numpy

我有一个情况:

一个numpy ndarray说:

import numpy as np
a=np.asarray([1,2,3,4])
#How can I check if all element in this 1 dimensional ndarray is type int
#so can I use something like
check=np.apply_along_axis(type,0,a) #this doesn't work
result=check.all() 

非常感谢

1 个答案:

答案 0 :(得分:1)

NumPy数组有一个NumPy dtype,适用于数组的所有成员。您可以检查该dtype是否为整数dtype:

>>> numpy.array([1, 2, 3, 4]).dtype
dtype('int32')
>>> numpy.array([1, 2, 3.0, 4]).dtype
dtype('float64')
>>> numpy.issubdtype(numpy.array([1, 2, 3, 4]).dtype, numpy.integer)
True
>>> numpy.issubdtype(numpy.array([1, 2, 3.0, 4]).dtype, numpy.integer)
False

顺便提一下,如果你想在NumPy数组中混合浮点数和整数,你可能根本就不应该使用NumPy:

>>> numpy.array([1, 2.0])
array([ 1.,  2.])

唯一允许其元素使用混合类型的NumPy dtype是object dtype,并且它不支持许多使NumPy有用的东西。