Uruchomiłem to na moim Macu (OS 10.13, 16 GB RAM, 512 GB SSD) i miałem takie same, udane wyniki, które zrobiłeś.
This comment wydaje się możliwą odpowiedzią. Podsumowując: ponieważ używasz zeros()
, nie ma potrzeby, aby każda komórka macierzy zajmowała 4 bajty, gdy wszystkie mają tę samą wartość. Zamiast tego, numpy może jawnie przechowywać w pamięci wszystkie wartości w macierzy, które nie są równe wspólnej wartości (w tym przypadku zero).
Warto zauważyć, że uruchomienie np.random.rand(1000000000, 3000)
powoduje pewne spustoszenie na moim Macu, co robi to samo co zeros()
, ale wypełnia matrycę rzeczywistymi danymi. RAM zostaje wyczerpany, a następnie zaczyna korzystać z partycji wymiany.
Przed np.random.rand()
:
Podczas np.random.rand()
:
Ahhh. Więc to jest rzecz OS. – user3813674