J'essaie de porter une partie de mon code de matlab vers python, et une partie utilise la fonction bsxfun() pour la réplication virtuelle suivie de la multiplication ou de la division (je l'utilise aussi pour les opérations logiques). Je voudrais pouvoir le faire sans réellement répliquer le vecteur (soit avec une fonction ou avec une sorte de matrice diagonale) avant de multiplier ou diviser pour économiser sur la mémoire et l'heure.Existe-t-il un équivalent à la fonction MATLAB bsxfun en python?
S'il existe un équivalent de bsxfun dans une bibliothèque C quelconque, cela fonctionnerait bien sûr également.
Si vous travaillez avec des tableaux en Python que vous allez vouloir être en utilisant numpy (www.numpy.org), et a numpy très belles propriétés de diffusion. (Voir http://www.scipy.org/EricsBroadcastingDoc pour un court tutoriel.) – DSM
Selon cette [question] (http://stackoverflow.com/questions/3213212/matlab-equivalent-of-numpy-broadcasting) le L'équivalent de la diffusion numpy dans matlab est 'bsxfun', donc je suppose que cela fonctionne dans l'autre sens. – jcollado
Il existe maintenant un didacticiel de diffusion numérique "officielle" à l'adresse http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html Le didacticiel proposé par DSM est toujours disponible sur https: // github. com/dwf/sauvé-scipy-wiki/blob/maître/EricsBroadcastingDoc.rst – user2809402