NumPy ufuncs
ufuncsとは何ですか?
ufuncsは「UniversalFunctions」の略で、ndarray
オブジェクトを操作するNumPy関数です。
なぜufuncsを使用するのですか?
ufuncsは、要素を反復処理するよりもはるかに高速なNumPyでのベクトル化を実装するために使用されます。
また、ブロードキャストや、計算に非常に役立つreduce、accumulateなどの追加メソッドも提供します。
ufuncsは、次のような追加の引数も取ります。
where
操作を実行する場所を定義するブール配列または条件。
dtype
要素の戻りタイプを定義します。
out
戻り値をコピーする必要がある出力配列。
ベクトル化とは何ですか?
反復ステートメントをベクトルベースの操作に変換することをベクトル化と呼びます。
最新のCPUはこのような操作用に最適化されているため、より高速です。
2つのリストの要素を追加する
リスト1:[1、2、3、4]
リスト2:[4、5、6、7]
これを行う1つの方法は、両方のリストを繰り返し処理してから、各要素を合計することです。
例
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)