Mam temp pyton ndarray w niektórych kodu Czytam, że cierpi na tym: (tzn., Co odpowiada m * m)Co oznacza macierz ** 2 w python/numpy?
x = temp**2
Jest to kwadrat kropka lub macierzą kwadratową (czyli m musi być kwadratowa matryca)? W szczególności chciałbym wiedzieć, czy mogę pozbyć się transpozycji tego kodu:
temp = num.transpose(whatever)
num.sum(temp**2,axis=1))
i przekształcić go w ten sposób:
num.sum(whatever**2,axis=0)
Będzie mi zaoszczędzić co najmniej 0,1 ms i jest zdecydowanie warta mojego czasu.
Dzięki! Operator ** jest niewykonalny i nic nie wiem! a
Woot, dzięki. Fifteeeeenherewecome. –
Nie ma za co. (Podpisałem się ponownie, aby wskazać prawdopodobnie oczywistą uwagę, że jeśli jesteś ndarray są> 2 wymiary, nie sądzę, aby transpozycja, rzecz wymiany osi zadziałała.) – tom10
Widzę, gdzie to może być mylące. Nie znając Pythona i nie rozumiejąc, że dla prawdziwych (i złożonych) liczb, kwadrowanie oznacza "pomnażanie liczby przez siebie", rozsądnie byłoby założyć, że oznaczało to "mnożenie samej matrycy" dla matriks. Oznacza to, że macierz ma oczywiście równą liczbę rzędów i kolumn. – duffymo