Czy możliwe jest wykonywanie przydziałów minimalnych/maksymalnych w miejscu za pomocą wielowymiarowych macierzy NumPy bez dodatkowej kopii?NumPy minimalne/maksymalne przypisanie na miejscu
Say, a
i b
są dwie tablice numpy 2D i chciałabym mieć a[i,j] = min(a[i,j], b[i,j])
dla wszystkich i
i j
.
Jednym ze sposobów, aby to zrobić:
a = numpy.minimum(a, b)
Ale zgodnie z dokumentacją, numpy.minimum
tworzy i zwraca nową tablicę:
numpy.minimum (x1, x2 [spośród])
Elementarne minimum elementów tablicy.
Porównaj dwie tablice i zwraca nową tablicę zawierającą minima elementarne.
Tak więc w powyższym kodzie, stworzy nową tymczasową tablicę (min a
i b
), a następnie przypisać je do a
i wyrzucać go, prawda?
Czy istnieje sposób na zrobienie czegoś takiego jak a.min_with(b)
, aby min-wynik został ponownie przypisany do a
w miejscu?
Rzeczywiście zajmuje trzeci parametr. Dzięki! :) – alveko
Poprawiłoby to nieznacznie odpowiedź, aby wydrukować 'id (a)' przed i po. –
@ jwpat7: Nie zawracałam sobie głowy, ponieważ nie ma możliwości, że po prostu wywołanie funkcji może ponownie powiązać "a", wskazując inny obiekt. – NPE