我有一个情况:
一个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()
非常感谢
答案 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有用的东西。