1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac

2021-12-31 16:39:21

質問事項

Python(python 3.5)のコードは以下のとおりです。

>>> import numpy as np
>>> preds = np.zeros((1, 3), dtype=int)
>>> p = [6802256107, 5017549029, 3745804973]
>>> preds[0] = p

<スパン Windowsで実行すると、エラーが表示されます。 Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> preds[0] = p OverflowError: Python int too large to convert to C long

でも、macでは大丈夫です。

解決方法は?

を超えると、このエラーが発生します。 sys.maxsize :

>>> p = [sys.maxsize]
>>> preds[0] = p
>>> p = [sys.maxsize+1]
>>> preds[0] = p
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C long

確認することができます。

>>> import sys
>>> sys.maxsize
2147483647

より大きな精度の数値を取るには、裏で有界C整数を使用するint型を渡さないことです。デフォルトのfloatを使いましょう。

>>> preds = np.zeros((1, 3))