numpy ライブラリのコア機能と利点を深く理解するには、具体的なコード例が必要です
Python はオープンソースの高水準プログラミング言語であり、numpy はPython ライブラリの重要な拡張機能。 Numpy は Numerical Python の略で、強力な多次元配列オブジェクトとそれに対応するさまざまな演算関数を提供し、Python 科学計算の中核ライブラリの 1 つです。データ処理、機械学習、深層学習などの分野では、numpy が重要な役割を果たします。この記事では、具体的なコード例とともに、numpy ライブラリの中心的な機能と利点を詳しく紹介します。
numpy の中核となるデータ構造は、効率的な多次元配列オブジェクトである ndarray (N 次元配列) です。 ndarray 配列の要素の型は同じである必要があり、整数、浮動小数点数などにすることができ、それらはメモリに継続的に格納されます。 ndarray 配列には、shape (配列の次元)、dtype (要素の種類)、size (要素の総数)、ndim (配列の次元) など、いくつかの重要な属性があります。
次は、ndarray 配列を作成する簡単な例です:
import numpy as np a = np.array([1, 2, 3]) print(a) print(a.shape) print(a.dtype)
出力結果は次のとおりです:
[1 2 3] (3,) int64
reshape を通じて ndarray 配列の次元を変更することもできます。 () メソッド:
b = np.array([[1, 2, 3], [4, 5, 6]]) print(b.shape) c = b.reshape(3, 2) print(c)
出力結果は次のとおりです:
(2, 3) [[1 2] [3 4] [5 6]]
numpy のもう 1 つの機能はベクトル化操作であり、これは非常に重要です。機能により、コンピューティング効率が大幅に向上するだけでなく、コード作成の難しさも簡素化されます。たとえば、ndarray 配列の各要素に特定の数値を追加したいとします。ベクトル化演算を使用しない場合は、ループを記述する必要があります。このようなコードは、多くの場合、非常に非効率で、保守が困難です。 numpy のベクトル化操作を使用すると、1 行のコードを記述するだけでこれを実現できます:
import numpy as np a = np.array([1, 2, 3]) b = a + 1 print(b)
出力結果は次のとおりです:
[2 3 4]
numpy ブロードキャスト関数を使用すると、さまざまな形状の配列に対して計算を実行できます。これは、numpy のベクトル化操作の鍵でもあります。ブロードキャストのルールは非常に単純です。2 つの配列の後縁の次元 (つまり、末尾から始まる次元) の軸の長さが一致するか、一方の配列の長さが 1 の場合、それらはブロードキャスト互換とみなされます。ブロードキャストは、欠落している次元または長さ 1 の次元で行われます。
次はブロードキャストの簡単な例です:
a = np.arange(4) b = np.ones(3) c = a[:, np.newaxis] + b print(c)
出力結果は次のとおりです:
[[1. 1. 1.] [2. 2. 2.] [3. 3. 3.] [4. 4. 4.]]
上の例では、1 次元配列 a と a one を作成しました。 -次元配列 b、それらの次元は異なります。ベクトル化操作を実行できるようにするために、ブロードキャスト機能を使用して配列 a に新しい次元を追加し、a と b の次元が同じになるようにします。
numpy の ufunc 関数は、加算 (加算)、減算 (減算)、乗算 (乗算) を含む、ndarray 配列を操作する一連の関数です。 )、割る(割る)、余り(余り)を求めるなど。これらの関数の特別な特徴は、ループせずに配列全体を操作できることです。さらに、ufunc 関数は、形状の異なる 2 つの配列を操作できるブロードキャスト関数もサポートしており、非常に便利で実用的です。
次は、ufunc 関数の簡単な例です:
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = np.add(a, b) print(c)
出力結果は次のとおりです:
[5 7 9]
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(a[0, 1]) print(a[1, :]) print(a[:, 0:2])出力結果は次のとおりです:
2 [4 5 6] [[1 2] [4 5] [7 8]]
a = np.random.rand(3) b = np.random.randn(3) c = np.random.randint(0, 10, size=(2, 3)) print(a) print(b) print(c)出力結果は次のとおりです:
[0.1688015 0.15220492 0.44022309] [-0.09097023 1.19200587 1.17187612] [[5 8 8] [0 9 1]]概要numpy は非常に強力で柔軟です。 library には、効率的な多次元配列オブジェクト、ベクトル化操作とブロードキャスト、ufunc 関数、スライスとインデックス付け、乱数生成など、多くの中核となる機能と利点があります。データサイエンスや人工知能に関連する分野において、numpyはかけがえのない重要な役割を果たしています。 numpyの使い方やコード実装を深く理解し、基本原理や共通操作をマスターし、実際の業務や学習に応用して効率や精度を高める必要があります。
以上がnumpy ライブラリのコア機能と利点をより深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。