NumPy ufuncs


Co jsou to ufuncové?

ufuncs je zkratka pro "Universal Functions" a jsou to funkce NumPy, které působí na ndarrayobjekt.

Proč používat ufuncs?

ufuncs se používají k implementaci vektorizace v NumPy, která je mnohem rychlejší než iterace přes prvky.

Poskytují také vysílání a další metody, jako je snížení, akumulace atd., které jsou velmi užitečné pro výpočet.

ufuncs také berou další argumenty, jako:

where booleovské pole nebo podmínka definující, kde by se operace měly uskutečnit.

dtype definování návratového typu prvků.

out výstupní pole, kam má být zkopírována návratová hodnota.


Co je to vektorizace?

Převod iterativních příkazů na vektorovou operaci se nazývá vektorizace.

Je rychlejší, protože moderní CPU jsou pro takové operace optimalizovány.

Přidejte prvky dvou seznamů

seznam 1: [1, 2, 3, 4]

seznam 2: [4, 5, 6, 7]

Jedním ze způsobů, jak to udělat, je iterovat oba seznamy a poté sečíst jednotlivé prvky.

Příklad

Bez ufunc můžeme použít vestavěnou zip()metodu Pythonu:

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 má na to ufunc, který se nazývá add(x, y) , že vytvoří stejný výsledek.

Příklad

S ufunc můžeme použít add()funkci:

import numpy as np

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

print(z)