2017-01-21 9 views
10

特に、this記事にコメントを参照して、プロセッサの「bit化」(32対64)であることが表示されません。numpyでintのサイズを決めるのは何ですか?

良い答えを。上記のコメントで述べたように、私は、@ suzep136の問題を64ビットARMプロセッサを使用するRaspberry Pi 3に複製することができます。オーバーフローの問題が64ビットアーキテクチャで発生する理由は何ですか?私が考えることができる唯一のことは、32ビットのコア用にラップバック/コンパイルがコンパイルされていることです。私はapt-getでnumpyをインストールしたと思う。 -

もnrlakinそれは私のマシン上で例えばCのintのサイズ、次のとおりです。

>>> import numpy, ctypes 
>>> 
>>> ctypes.sizeof(ctypes.c_int) 
4 
>>> numpy.array([1]).dtype 
dtype('int64') 

だから、何それは依存しますか?部分的な答えはhereである: -

編集:EV-BR

編集

LAPACKは、すべてのアーキテクチャ上で32ビット整数を使用しています。他の候補、感謝のEV-BRをそこに行きます。ありがとうGoyo。 これをコピーしてCWにしました。PyPyやJythonのような細かい点を追加することができます。私はまた、この選択肢について深い理由があるかどうかにも興味があります。

+0

'int'が' numpy.dtype(int) 'を使って対応するデータ型をチェックすることができます。 –

+0

@エリサドフありがとう、しかし、それは私に何を与えるのではなく、なぜなら。 –

+0

LAPACKはすべてのアーキテクチャで32ビットの整数を使用します –

答えて

1

Goyoのおかげで、信用できる人はあまりありません。関連しているが異なるquestionの回答を参照してください。

numpyのデフォルトの整数型はnumpy.int_です。下線を確認してください。デフォルトはC long1です。

0

あなたが質問を誤解しているかもしれませんが、Numpy Documentationを見てみると、numpyはシステムアーキテクチャを考えれば最大ビットサイズがどのような値になるかに基づいてビット値を割り当てます。基本的には、整数「コンテナ」の長さが8または16ビットであることを指定していないため、64ビットマシンで可能な最大のコンテナにデフォルト設定されています。

ビット数を調べたい場合、pythonには組み込みの "bit_length()"関数があります。ここで確認してください:

これはあなたの質問にお答えします。

+1

いいえ、それはまったく起こりません。ある意味では、問題の全体的なポイントは、あなたと私と他の人たちが純粋に想定していることは正しいとは言いません。 –

関連する問題