Il modo più efficiente per mappare la funzione su un array numpy

| | | | | | | | | | | | |

Qual è il modo più efficiente per mappare una funzione su un array numpy? Il modo in cui l'ho fatto nel mio progetto attuale è il seguente:

import numpy as np x = np.array([1, 2, 3, 4, 5]) # Ottieni array di quadrati di ogni elemento in x squarer = lambda t: t ** 2 squares = np.array([squarer(xi) for xi in x]) 

Tuttavia, sembra probabilmente è molto inefficiente, dal momento che sto usando una comprensione dell'elenco per costruire il nuovo array come un elenco Python prima di riconvertirlo in un array numpy.

Possiamo fare di meglio?