1、isinstance/type
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()
isinstance,type都是针对单个数
若是数组
a=np.array([[1.0,2.0,3.0],[4.0,5.0,6.0]])
print(type(a))
print(isinstance(a,float))
a=a.astype(int)
print(type(a))
print(isinstance(a,int))
输出是
<class 'numpy.ndarray'>
False
<class 'numpy.ndarray'>
False
若是单个数,用int/float/complex改变数据类型
b=1.0
print(type(b))
print(isinstance(b,float))
b=int(b)
print(type(b))
print(isinstance(b,int))
输出
<class 'float'>
True
<class 'int'>
True
且int/float/complex改变数据类型无法改变数组中单个元素的数据类型
a=np.array([[1.0,2.0,3.0],[4.0,5.0,6.0]])
print(type(a[0,0]))
print(isinstance(a[0,0],float))
a[0,0]=int(a[0,0])
print(type(int(a[0,0])))
print(isinstance(a[0,0],int))
print(a)
输出
<class 'numpy.float64'>
True
<class 'int'>
False
[[1. 2. 3.]
[4. 5. 6.]]
2、astype/dtype都是 是numpy内置函数,astype可以对数组数据类型进行转换 dtype判断数组内部数据类型
a=np.array([[1.0,2.0,3.0],[4.0,5.0,6.0]])
print(a.dtype)
a=a.astype(int)
print(a.dtype)
print(isinstance(a,int))
输出
float64
int32
False
dtype也可以让数组类型转换
print(a.dtype)
a=np.array(a,dtype='float')
print(a.dtype)
输出
int32
float64