ホームページ > バックエンド開発 > Python チュートリアル > numpy バ​​ージョンを表示するためのヒントとテクニック

numpy バ​​ージョンを表示するためのヒントとテクニック

王林
リリース: 2024-01-19 10:53:05
オリジナル
1230 人が閲覧しました

numpy バ​​ージョンを表示するためのヒントとテクニック

numpy は、Python で非常に一般的に使用される数学ライブラリです。科学計算の分野で広く使用されており、多数の数値計算、線形代数、乱数生成、フーリエをサポートしています。変換およびその他の機能。数学的計算に numpy を使用する場合、多くの場合、numpy のバージョンとその特性を決定し、numpy のバージョンごとに異なる最適化とアルゴリズムの選択を行う必要があります。この記事では、numpy のバージョンを確認するためのヒントとテクニック、および numpy のバージョン情報を検出して numpy をより効果的に使用する方法を紹介します。

1. numpy のバージョンを表示する方法

numpy には、numpy のバージョン情報を取得するために使用できる組み込み関数とプロパティが多数あります。以下では、numpy のバージョンを確認するためによく使用されるいくつかの方法を紹介します。

  1. numpy.version 属性を使用する

numpy には version 属性があり、バージョン番号や Git など、現在の numpy バ​​ージョンの詳細情報を取得するために使用できます。コミットハッシュ値、コンパイラ情報などコード例は次のとおりです。

import numpy as np
print(np.version.version)
ログイン後にコピー

出力結果は次のとおりです。

1.20.1
ログイン後にコピー
ログイン後にコピー
  1. バージョンに加えて、numpy.__version__ 属性を使用します。属性、numpy も __version__ 属性が提供され、そのデフォルト値は現在の numpy バ​​ージョンの文字列表現です。この属性は、numpy でバージョン情報を確認する一般的な方法の 1 つでもあり、コード例は次のとおりです:
  2. import numpy as np
    print(np.__version__)
    ログイン後にコピー
出力結果は前の例と同じです:

1.20.1
ログイン後にコピー
ログイン後にコピー

numpy.show_config 関数を使用する

  1. より詳細な numpy コンパイルおよびビルド情報を表示する必要がある場合は、numpy.show_config 関数を使用できます。この関数は、C コンパイラ、CBLAS ライブラリ、LAPACK ライブラリなど、ビルド時に numpy によって使用されるさまざまなコンパイラ、リンカー、ライブラリを表示します。コード例は次のとおりです。
  2. 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート