numpy强制类型转换怎样做,会出现哪些问题
今天小编跟大家讲解下有关“numpy强制类型转换怎样做,会出现哪些问题”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。
numpy强制类型转换
以上就是关于“numpy强制类型转换怎样做,会出现哪些问题”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注博信,小编每天都会为大家更新不同的知识。
numpy强制类型转换
今天用numpy遇到一个关于类型转换的问题,
import numpy as np A = np.array([1,2,3,4,5,6,7,8,9]) A[0]=3.2 print(A) # [3 2 3 4 5 6 7 8 9]
可以发现A[0]=3.2,被强制转换成整型3了。发生的原因是A的类型是np.int,赋值浮点数,会自动转为整型。
这样的问题一旦出现很难发现,在写成程序时要提前想好要用的np类型。
补充,两个整型np.array做运算时,会根据运算自动转换类型。
A = np.array([1,2,3,4,5,6,7,8,9]) B = np.array([2,3,4,5,6,7,8,9,10]) print(A/B) # [0.5 0.66666667 0.75 0.8 0.83333333 0.85714286 0.875 0.88888889 0.9 ]
numpy类型强制转换api
有时候我们从文件读取的numpy类型就不是我们想要的,需要强制转换
A = np.array([1,2,3,4,5,6,7,8,9]) A.dtype = 'float' # 不能为dtype赋予类型,数据会出错 A.astype('float') # 正确做法
numpy数据类型转换astype,dtype
1.查看数据类型
In [11]: arr = np.array([1,2,3,4,5]) In [12]: arr Out[12]: array([1, 2, 3, 4, 5]) // 该命令查看数据类型 In [13]: arr.dtype Out[13]: dtype('int64') In [14]: float_arr = arr.astype(np.float64) // 该命令查看数据类型 In [15]: float_arr.dtype Out[15]: dtype('float64')
2.转换数据类型
// 如果将浮点数转换为整数,则小数部分会被截断 In [7]: arr2 = np.array([1.1, 2.2, 3.3, 4.4, 5.3221]) In [8]: arr2 Out[8]: array([ 1.1 , 2.2 , 3.3 , 4.4 , 5.3221]) // 查看当前数据类型 In [9]: arr2.dtype Out[9]: dtype('float64') // 转换数据类型 float -> int In [10]: arr2.astype(np.int32) Out[10]: array([1, 2, 3, 4, 5], dtype=int32)
3.字符串数组转换为数值型
In [4]: numeric_strings = np.array(['1.2','2.3','3.2141'], dtype=np.string_) In [5]: numeric_strings Out[5]: array(['1.2', '2.3', '3.2141'], dtype='|S6') // 此处写的是float 而不是np.float64, Numpy很聪明,会将python类型映射到等价的dtype上 In [6]: numeric_strings.astype(float) Out[6]: array([ 1.2, 2.3, 3.2141])
以上就是关于“numpy强制类型转换怎样做,会出现哪些问题”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注博信,小编每天都会为大家更新不同的知识。
版权声明
本文仅代表作者观点,不代表博信信息网立场。