2015-05-29 32 views

risposta

10

numpy.fromfunction si adatta al conto qui.

Esempio da doc:

>>> import numpy as np 
>>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) 
array([[0, 1, 2], 
    [1, 2, 3], 
    [2, 3, 4]]) 
+0

eccellente, grazie. –

+6

Attenzione: la documentazione non lo spiega chiaramente, ma 'np.fromfunction (f, shape, dtype = dtype)' è un sottile involucro attorno a 'f (* np.indices (shape, dtype = dtype))'. Non esegue una chiamata individuale a 'f' per ogni cella, quindi se passi una funzione che non funziona in modo vettorializzato, otterrai risultati strani ed errati. – user2357112

1

Si potrebbe anche ottenere gli indici del vostro array con numpy.indices e quindi applicare la funzione f in modo vettoriale,

import numpy as np 

shape = 1000, 1000 

Xi, Yj = np.indices(shape) 

A = (2*Xi + 3*Yj).astype(np.int) # or any other function f(Xi, Yj) 
Problemi correlati