19

これは主に好奇心からの質問です。numpy テスト スイートには 128 ビット整数のテストが含まれていることに気付きました。numerictypesモジュールint128float256( 8 倍精度?)、および私のマシンの numpy dtypes にマップされていないように見えるその他の型を参照しています。

私のマシンは 64 ビットですが、4 つの 128 ビット浮動小数点数を使用できます (実際にはそうではありません)。ソフトウェアで 4 倍浮動小数点数をエミュレートできる場合、理論的には 8 倍浮動小数点数と 128 ビット整数もエミュレートできると思います。一方、128 ビットの整数や 8 倍精度の浮動小数点については、今まで聞いたことがありませんでした。numerictypes対応する s がない場合、numpy のモジュールに 128 ビットの int と 256 ビットの float への参照があるのはなぜdtypeですか? また、それらをどのように使用できますか?

4

2 に答える 2

-3

NumPy は驚くほど強力で、内部 CPU 表現 (64 ビットなど) よりもはるかに大きな数値を処理できます。

動的タイプの場合、数値を配列に格納します。メモリブロックも拡張できるため、500桁の整数を使用できます。この動的な型は bignum と呼ばれます。古いバージョンの Python では long 型でした。新しい Python (3.0+) では、int と呼ばれる long のみがあり、ほぼ任意の桁数 (-> bignum) をサポートします。

データ型 (int32 など) を指定する場合は、ビット長とビット形式を指定します。つまり、メモリ内のどのビットが何を表しているかを指定します。例:

dt = np.dtype(np.int32)      # 32-bit integer
dt = np.dtype(np.complex128) # 128-bit complex floating-point number

参照してください: https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

于 2016-10-20T11:30:48.133 に答える