Jest to kod mam w oktawie:Konwersja bsxfun z @times do NumPy
sum(bsxfun(@times, X*Y, X), 2)
Część bsxfun kodu produkuje elementu mnożenie więc pomyślałem, że numpy.multiply(X*Y, X)
by rade ale dostałem wyjątek. Kiedy zrobiłem trochę badań, odkryłem, że mnożenie elementarne nie działa na tablicach Pythona (szczególnie jeśli X i Y są typu "numpy.ndarray"). Zastanawiałem się więc, czy ktokolwiek może to wyjaśnić nieco więcej - tzn. Czy wypisanie rzutowania na inny typ obiektu działa? Kod Octave działa, więc wiem, że nie mam błędu algebry liniowej. Zakładam, że bsxfun i numpy.multiply nie są w rzeczywistości równoważne, ale nie jestem pewien, dlaczego tak wiele wyjaśnień byłoby świetnie.
Udało mi się znaleźć website! to daje konwersję funkcji Octave na Matlab, ale w moim przypadku nie było to pomocne.
Pytanie to wydaje się być nie na temat, ponieważ jest to żądanie tłumaczenia kodu – jonrsharpe
, gdy zastosujesz 'sum()' w NumPy wybierasz właściwą "oś"? –
"Mam wiele problemów" nie jest zbyt pouczający. Opisz działanie, które widzisz, powtarzalny przykład to najlepszy sposób na to. –