python 整數溢位 得到numpy警告整數溢位

2021-10-11 17:22:02 字數 968 閱讀 6430

大多數使用python,我已經被寵壞了,不必擔心整數溢位。現在我正在使用numpy,我不得不再次擔心它。我想numpy在溢位的情況下出錯,但它似乎不適用於int64。得到numpy警告整數溢位

import numpy

numpy.seterr(all='raise')

print("".format(numpy.prod([10]*50)))

# -5,376,172,055,173,529,600

print("".format(numpy.int64(3200000000) * numpy.int64(3200000000)))

# -8,206,744,073,709,551,616

print("".format(numpy.int32(320000) * numpy.int32(320000)))

# floatingpointerror: overflow encountered in int_scalars -- finally getting an error!

我可以隨時新增dtype=object來解決這些問題,但我認為int64的不夠好大部分時間,它是太可怕了,它可以在這個硬故障檢測方法。

為什麼seterr只能用於int32?我可以使它適用於int64嗎?

的numpy.seterr文件,我可以找到這可能暗示,這可能是為什麼的情況下的唯一部分是下列短文:

注意整數標量操作型別(如int16)是 處理像浮點,並受這些設定的影響。

但data type文件中沒有提示int32和int64在概念上有所不同。不確定int64是否被認為是「整數標量型別」。

2015-08-14

dan+3

看起來像乙個numpy的bug;請參閱奇怪的是,列印(numpy.int64(2 ** 63-1)* numpy.int64(2))*會在我的系統上引發異常(ubuntu 14.04,python 2.7.6,numpy 1.8.2),但是您的示例顯示了小車行為。 –

得到app文稿匯出 得到APP使用報告

一 體驗環境 使用裝置 iphone 6s 作業系統 ios 10.1.1 產品版本 3.1.1 二 產品體驗 一 戰略層 1.產品定位 slogan 得到 和你一起終身學習 得到是乙個知識付費型的線上知識學習平台 通過提供優質pgc內容,打造優質的知識服務,幫助使用者在碎片化時間終身學習。2.市場...

整數溢位,如何判斷整數溢位

c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...

整數溢位,如何判斷整數溢位

c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...