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