繁体   English   中英

为什么numpy在混合数组中将int转换为字符串而不是将字符串转换为int?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM