今天用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过程中遇到的类型转换问题,当尝试将浮点数赋值给整型numpy数组时,数值会被自动转换为整型,可能导致不易察觉的错误。作者提醒在编程时需预先设定正确的数据类型,并展示了如何使用astype()函数进行类型转换。此外,还提到了两个整型numpy数组在运算时会自动提升类型。最后,强调了在处理从文件读取的数据时,确保正确转换类型的重要性。
1039

被折叠的 条评论
为什么被折叠?



