numpy.int64和int是不一样的!!!!一定要注意,这个坑我踩了好几天才发现!!!!!

比如说 :在处理dataframe的时候,读取出来的可能是numpy.int64,但是后边的程序需要int类型,你把numpy.int64喂给它,就会导致程序运行不出你想要的结果,但又不报错。这个时候可以检查一下是否存在类型不一致的情况。

numpy.int64和int类型转换:

import numpy as np
#定义一个int变量
a=123
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'>
y.astype(np.int)#np数组使用这个转换为int
np.array(x,dtype=np.int)#在将一个数组包装成np数组时顺便指定包装之后的数据类
直接对布尔值进行求
x=np.array([True,True,False])
print(np.sum(x))#结果是2,即自动把True看成1,False看成0
...
				
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> import numpy as np >>> a = np.arange(12).reshape(3,4) 最近在开发的时候遇到一个要解析其他系统设置的编码id,id是int64位的,其中id 64位很多位都含有特殊意义,需要借助位操作来实现提取信息。不过开发的过程中发现pythonint是无限制的,所以在得到id中间特殊位含义时出现了一些问题。 def get_left_value(steps, value): if value > 18446744073709551615...
import numpy as np nparr = np.array([[1 ,2, 3, 4]]) np_int32 = nparr[0][0] # np_int=1 py_int = 1234 #打印类型 print("type(py_int32)="+str(type(py_int32))) print("type(np_int)="+str(type(np_in...
错误场景:在使用json.dumps时,出现问题: TypeError: Object of type int64 is not JSON serializable 问题分析: python3中没有int64这个数据类型,所有的整型都是int 报错里的int64指的是<class ‘numpy.int64’>,所以很有迷惑性 解决方案: TypeError: Object of type int64 is not JSON serializable def default_dump(obj
numpy.int64改为numpy.ndarray的操作并不是很明确,因为numpy.int64是一个数据类型(data type),而numpy.ndarray是一个多维数组对象(multidimensional array object)。如果你的目的是将一个numpy.int64类型的值转换为一个numpy.ndarray对象,可以使用numpy.array()函数将其转换为包含该值的一维数组,例如: import numpy as np a = np.int64(123) b = np.array([a]) print(b) [123] 在这里,我们使用numpy.int64()函数创建了一个值为123的numpy.int64类型的变量a,然后使用numpy.array()函数将其转换为一个包含该值的一维数组b。