NumPy ufuncs

ufuncとは何ですか?

ufuncsは「ユニバーサル関数」と呼ばれ、ndarrayオブジェクトに対して操作を行うNumPy関数です。

なぜufuncを使用するべきですか?

NumPyでベクトライズを実現するufuncは、要素に対する反復よりもはるかに速いです。

彼らは減少、累積などの他の方法も提供し、計算に非常に役立ちます。

ufuncは他のパラメータも受け入れます、例えば:

where 操作を行う場所を定義するためのブール値配列または条件。

dtype 要素の返り値のデータ型を定義します。

out 返り値がコピーされるべき出力配列。

ベクトル化とは何ですか?

迭代文をベクトル操作に変換することをベクトル化と呼びます。

現代のCPUはこの種の操作に最適化されているため、より高速です。

二つのリストの要素を足す:

リスト1: [1, 2, 3, 4]

リスト2: [4, 5, 6, 7]

一つの方法は、リストを巡ってそれぞれの要素を足すことです。

ufuncがない場合、Pythonの組み込み zip() メソッド:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
  z.append(i + j)
print(z)

実行例

これに対して、NumPyにはufuncとして名付けられた add(x, y)、同じ結果が表示されます。

ufuncを通じて、私たちは使用できます add() 関数:

import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)

実行例