2
爲什麼答案是浮點數?我認爲它應該是一個整數。無符號和有符號數的numpy總和成爲浮點數
>>> import numpy as np
>>> np.uint64(12)
12
>>> np.uint64(12) + int(4)
16.0
>>>
爲什麼答案是浮點數?我認爲它應該是一個整數。無符號和有符號數的numpy總和成爲浮點數
>>> import numpy as np
>>> np.uint64(12)
12
>>> np.uint64(12) + int(4)
16.0
>>>
根據最近的reddit post。
這是Numpy函數設計用於爲整個輸入數據範圍返回一致值的方式。
16位無符號和符號整數將融入INT32,因此
>>> np.uint16(4) + np.int16(5)
9
然而,對於UINT64和Int64的,將適合所有可能的值最小的數據類型是float64。
這肯定是出乎意料的。 –
那麼,至少結果與'np.promote_types(np.uint64,np.int)'一致。我在github上發現了一個[相關問題](https://github.com/numpy/numpy/issues/5745) –