Skep jou eie ufunc


Hoe om jou eie ufunc te skep

Om jou eie ufunc te skep, moet jy 'n funksie definieer, soos jy doen met normale funksies in Python, dan voeg jy dit by jou NumPy ufunc-biblioteek met die frompyfunc()metode.

Die frompyfunc()metode neem die volgende argumente:

  1. function- die naam van die funksie.
  2. inputs- die aantal invoerargumente (skikkings).
  3. outputs- die aantal uitvoerskikkings.

Voorbeeld

Skep jou eie ufunc vir byvoeging:

import numpy as np

def myadd(x, y):
  return x+y

myadd = np.frompyfunc(myadd, 2, 1)

print(myadd([1, 2, 3, 4], [5, 6, 7, 8]))

Kyk of 'n funksie 'n ufunc is

Gaan die tipe funksie na om te kyk of dit 'n ufunc is of nie.

'n Ufunc moet terugkeer <class 'numpy.ufunc'>.

Voorbeeld

Kyk of 'n funksie 'n ufunc is:

import numpy as np

print(type(np.add))

As dit nie 'n ufunc is nie, sal dit 'n ander tipe terugstuur, soos hierdie ingeboude NumPy-funksie om twee of meer skikkings te verbind:

Voorbeeld

Kontroleer die tipe van 'n ander funksie: aaneenskakel():

import numpy as np

print(type(np.concatenate))

As die funksie glad nie herken word nie, sal dit 'n fout terugstuur:

Voorbeeld

Kontroleer die tipe iets wat nie bestaan ​​nie. Dit sal 'n fout produseer:

import numpy as np

print(type(np.blahblah))

Om te toets of die funksie 'n ufunc in 'n if-stelling is, gebruik die numpy.ufuncwaarde (of np.ufuncas jy np as 'n alias vir numpy gebruik):

Voorbeeld

Gebruik 'n if-stelling om te kyk of die funksie 'n ufunc is of nie:

import numpy as np

if type(np.add) == np.ufunc:
  print('add is ufunc')
else:
  print('add is not ufunc')