ホームページ >バックエンド開発 >Python チュートリアル >numpy バージョンを表示するためのヒントとテクニック
numpy は、Python で非常に一般的に使用される数学ライブラリです。科学計算の分野で広く使用されており、多数の数値計算、線形代数、乱数生成、フーリエをサポートしています。変換およびその他の機能。数学的計算に numpy を使用する場合、多くの場合、numpy のバージョンとその特性を決定し、numpy のバージョンごとに異なる最適化とアルゴリズムの選択を行う必要があります。この記事では、numpy のバージョンを確認するためのヒントとテクニック、および numpy のバージョン情報を検出して numpy をより効果的に使用する方法を紹介します。
1. numpy のバージョンを表示する方法
numpy には、numpy のバージョン情報を取得するために使用できる組み込み関数とプロパティが多数あります。以下では、numpy のバージョンを確認するためによく使用されるいくつかの方法を紹介します。
numpy には version 属性があり、バージョン番号や Git など、現在の numpy バージョンの詳細情報を取得するために使用できます。コミットハッシュ値、コンパイラ情報などコード例は次のとおりです。
import numpy as np print(np.version.version)
出力結果は次のとおりです。
1.20.1
import numpy as np print(np.__version__)
1.20.1
numpy.show_config 関数を使用する
import numpy as np np.show_config()
blas_mkl_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] blis_info: NOT AVAILABLE openblas_info: NOT AVAILABLE lapack_mkl_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] lapack_opt_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] lapack_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] mkl_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] blas_opt_info: libraries = ['mkl_rt'] library_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/lib/intel64'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['C:/Program Files (x86)/Intel/oneAPI/mkl/2021.1.1/include'] ...(输出结果省略)上記の 3 つの方法により、numpy の特定のバージョンとコンパイル情報を確認し、 numpy のバージョンはさまざまなアプリケーションに適しており、プロジェクトに対応する numpy のバージョン、および適切な numpy アルゴリズムとメソッドの選択は非常に重要です。 2. numpy のバージョン情報の適用numpy のバージョン情報を明確にした後、numpy を使用する際に、最適な最適化効果とパフォーマンスの向上を達成するために、さまざまなバージョンに適切なアルゴリズムとメソッドを選択できます。たとえば、numpy バージョン 1.20 以降では、プログラム実行時の例外を回避するために、高レベル関数を使用して NaN 値を自動的に処理することができると同時に、いくつかの効率的な最適化アルゴリズムが使用され、パフォーマンスも向上しました。大幅に改善されました。 numpy の以前のバージョンでは、NaN 値と例外を手動で処理し、プログラムの安定性とパフォーマンスを向上させるためにいくつかの単純なアルゴリズムを使用する必要がある場合があります。 次は、numpy のバージョン情報を使用して最適なアルゴリズムを選択する方法を示す簡単な例です。 10000×10000 行列の積を計算する必要があるとします。このタスクは 2 つの方法で計算できます。 1 つの方法は、BLAS ライブラリの dgemm サブルーチンを呼び出して 2 つの行列のドット積を計算する numpy.dot() 関数を使用することです。この関数はマルチスレッドとベクトル化計算もサポートしており、計算速度は非常に高速です。もう 1 つの方法は、numpy.multiply() 関数を使用して 2 つの行列を要素ごとに乗算し、その結果を合計してドット積を取得することです。このメソッドの実装は比較的単純ですが、パフォーマンスは低くなります。 次のコードは、2 つのアルゴリズムの計算時間を比較します:
import numpy as np import time A = np.random.rand(10000, 10000) B = np.random.rand(10000, 10000) # 方法1:使用numpy.dot函数 start_time = time.time() C = np.dot(A, B) end_time = time.time() print("方法1计算时间:", end_time - start_time) # 方法2:使用numpy.multiply函数 start_time = time.time() C = np.multiply(A, B).sum() end_time = time.time() print("方法2计算时间:", end_time - start_time)出力結果は次のとおりです:
方法1计算时间: 3.94059681892395 方法2计算时间: 9.166156768798828ご覧のとおり、numpy を使用した方が計算速度が速くなります。 .dot() numpy.multiply() を使用するよりもほぼ 2.5 倍高速です。このことから、numpy バージョンに互換性がある場合、パフォーマンスの向上と計算時間の短縮のために numpy.dot() アルゴリズムを優先する必要があると結論付けることができます。 。 結論この記事では、numpy バージョンを表示するためのいくつかの方法を紹介し、さまざまな numpy バージョンに対するさまざまなアルゴリズムとメソッドの適用についても紹介します。実際の numpy 開発では、numpy バージョンの特性とパフォーマンスを理解し、numpy バージョンの表示スキルを習得することが非常に必要です。これにより、より良い numpy アプリケーションと開発のための強固な基盤を築くことができます。
以上がnumpy バージョンを表示するためのヒントとテクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。