J'ai un temp ndarray python dans un code que je lis qui souffre ceci: (.-À-dire, ce qui équivaut à m * m)Que signifie matrice ** 2 en python/numpy?
x = temp**2
Est-ce la place du point ou la place de la matrice (c.-à-m doit être une matrice carrée)? En particulier, je voudrais savoir si je peux me débarrasser de la transposition dans ce code:
temp = num.transpose(whatever)
num.sum(temp**2,axis=1))
et la transformer en ceci:
num.sum(whatever**2,axis=0)
qui me sauver au moins 0.1ms, et vaut clairement mon temps.
Merci! L'opérateur ** est indiscutable et je ne sais rien! a
Woot, merci. Fifteeeeenherewecome. –
De rien. (Je me suis réinscrit dans la note probablement évidente, que si vous êtes ndarray sont> 2 dimensions, je ne pense pas que la transposition, l'échange d'axe fonctionnera.) – tom10
Je peux voir où cela pourrait être déroutant. Sans connaître Python, et en comprenant que pour les nombres réels (et complexes), équerrer signifie «multiplier un nombre par lui-même», il aurait été raisonnable de supposer qu'il signifiait «multiplier une matrice par lui-même» pour les matrices. Cela signifie que la matrice a un nombre égal de lignes et de colonnes, bien sûr. – duffymo