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)