解释说明:
numpy.int64和int是不一样的!!!!一定要注意,有时候也会报错如下:did not match C++ signature:
常常在处理dataframe的时候,读取某一个单元格的数据,取出来的可能是<class ‘numpy.int64’>类型,但是后边的程序需要int类型,你把numpy.int64喂给它,就会导致程序运行不出你想要的结果,但又不报错。
或者你取出来的是也可能是<class ‘numpy.float64’>类型,而后面程序需要的是float类型,此时,如果你把取出来的数据喂给它,则会报错,表示数据类型不匹配!
这个时候可以检查一下是否存在数据类型不一致的情况。
————————————————
numpy.int64和int类型强制转换:
import numpy as np
#定义一个int变量
a=999
print(type(a)) #<class 'int'>
#强制类型转换为np.int64
b=np.int64(a)
print(type(b)) #<class 'numpy.int64'>
#再强制转化成int
c=int(b)
print(type(c)) #<class 'int'>
#=======================================
还有一个比较简捷的方法,就是用.item(),
它会直接将numpy.int64类型转换int;将’numpy.float64类型转换float64,
示例如下:
import numpy as np
#定义一个'float'变量
a=567.36
#强制类型转换为np.float64
b=np.float64(a)
print(type(b)) # <class 'numpy.float64'>
#再转化成float64
c=b.item()
print(type(c)) #<class 'float64'>
将numpy.int64类型转换int
import numpy as np
#定义一个'int'变量
a=567
#强制类型转换为np.int64
b=np.float64(a)
print(type(b)) # <class 'numpy.int64'>
#再用.item()转化成int类型
c=b.item()
print(type(c)) #<class 'int'>