簡體   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