[英]Why does numpy convert int to string and not string to int in a mixed array?
我有这个代码:
import numpy as np
def printMe(myData):
print(myData)
print(type(myData))
print("length = " + str(len(myData)))
for x in myData:
print(x)
print(type(x))
if __name__ == '__main__':
myOtherData = np.array([123,"456"])
printMe(myOtherData)
输出是
['123' '456']
<class 'numpy.ndarray'>
length = 2
123
<class 'numpy.str_'>
456
<class 'numpy.str_'>
为什么将123
转换为字符串而不是将'456'
转换为整数?
如果dtype
在呼叫未指定np.array
那么类型将被作为最小类型需要保存的序列中的对象来确定。 在您的示例中,这将是一个字符串。
否则,如果您使用np.array([123,'456'], dtype=int)
,那么它将尝试为所有序列成员强制使用 int 类型,但是如果其中一个成员不适合,这将失败并显示值错误转换为所需的dtype
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.