Sto provando a trasferire un po 'del mio codice da MATLAB a Python, e alcuni usano la funzione bsxfun() per la replica virtuale seguita da moltiplicazione o divisione (lo uso anche per le operazioni logiche). Mi piacerebbe essere in grado di farlo senza effettivamente replicare il vettore (con una funzione o con una sorta di matrice diagonale) prima di moltiplicare o dividere per risparmiare memoria e tempo.Esiste un equivalente alla funzione MATLAB bsxfun in python?
Se c'è un equivalente di bsxfun in una libreria C di qualche tipo, ovviamente funzionerebbe anche.
Se si lavora con gli array in Python si sta andando a voler essere utilizzando NumPy (www.numpy.org), e ha numpy proprietà di trasmissione molto belle. (Vedi http://www.scipy.org/EricsBroadcastingDoc per un breve tutorial.) – DSM
Secondo questa [domanda] (http://stackoverflow.com/questions/3213212/matlab-equivalent-of-numpy-broadcasting) il l'equivalente della trasmissione numpy in matlab è 'bsxfun', quindi immagino che funzioni in senso inverso. – jcollado
Esiste ora un'esercitazione di "numpy broadcasting" ufficiale su http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html Il tutorial suggerito da DSM può ancora essere trovato su https: // github. com/DWF/salvato-SciPy-wiki/blob/master/EricsBroadcastingDoc.rst – user2809402