Czy w python numexpr jest bezpieczne przypisywanie wartości do tej samej macierzy, na której pracujesz, aby uniknąć tworzenia tymczasowej tablicy?numexpr.evaluate ("a + b", out = a)
Z opisu użycia pamięci na project homepage wygląda dobrze, ale bez zanurzania się w kodzie źródłowym, to nie jest solidna odpowiedź.
Próbowałem następujących który działa dobrze, ale mam nadzieję na potwierdzenie od kogoś bardziej znanego z tego pakietu:
import numpy as np
import numexpr as ne
a = np.ones(5)
b = a.copy()
ne.evaluate("a+b",out=a)
array([ 2., 2., 2., 2., 2.])
Nie mogę wymyślić przypadku, w którym nie byłoby to bezpieczne z mojej strony (wiele indeksujących lew, które potencjalnie mogłyby spowodować problemy, nie działają na początku w numexpr). Na marginesie, dla prostych przypadków, takich jak twój przykład, warto również pamiętać o: 'np.add (a, b, out = a)'. 'numexpr' jest niezwykle przyjemny, ale bez niego można uniknąć tymczasowych tablic, jeśli nie chcesz innej zależności. –