Nie ma już pełną listę wskazówek dla pytona tutaj , więc co ja z prośbą o wskazówki, które są specjalnie dotyczą użyciu numpy
, scipy
czy pylab
bibliotek.
Mogą to być albo sposoby skracania już używanego kodu numpy
, albo sposoby skracania typowych operacji w Pythonie za pomocą tych bibliotek.
Poproszę jedną wskazówkę na odpowiedź.
pylab
to tylkomatplotlib.pyplot
+numpy
w przestarzałej wspólnej przestrzeni nazw. Tanumpy
częśćpylab
jest trywialna w tym sensie, że ich import ma taką samą liczbę bajtów, więc dodatkowo można było tylko wykreślić rzeczypylab
, ale podejrzewam, że nie o to ci chodziło w pytaniu.numpy
pakietów. Na przykładpylab.randint
obowiązuje tam, gdzie wymagałoby numpynumpy.random.randint
. Więc do gry w golfapylab
należy podać krótszy kod.Odpowiedzi:
Skorzystaj z Numpy transmisji
Nadawanie oznacza replikację tablicy wielowymiarowej wzdłuż niektórych jej wymiarów singletonu, aby dopasować ją do wielkości innej tablicy. Dzieje się tak automatycznie w przypadku tablic Numpy, gdy zostaną do nich zastosowane operatory arytmetyczne.
Na przykład, aby wygenerować tabliczkę mnożenia 10 × 10, możesz użyć
Wypróbuj online!
Tutaj
t
jest tworzony jako tablica Numpy[1, 2, ..., 10]
. Ma on kształt (10), który jest równoważny (1,10). Druga tablica operandówt[:,None]
ma rozmiar (10,1). Pomnożenie dwóch tablic niejawnie implikuje je, więc zachowują się tak, jakby oba miały kształt (10,10). Wynik, który również ma kształt (10,10), zawiera produkty dla wszystkich par wpisów w oryginalnych tablicach.źródło
zip
z nadawania, czy to pojawi się we własnej odpowiedzi?[*zip(t)]
ma taką samą liczbę bajtów, co bardziej czytelnat[:,None]
. Ale masz rację, być może warto to zauważyć, więc dodałem to tutaj[*zip(t)]
byłyby dwa bajty krótsze, gdyby było więcej wymiarów.[*zip(t)]
będzie działało tylko na Pythonie 3.my \t = 1..10; .fmt('%3d').put for t «*» t[*,Empty]
lub można by użyćzip(t)
Użyj r _ [...] zamiast zakresu (...)
Numpy zapewnia składnię podobną do Matlaba przy tworzeniu tablic
r_[...]
. Każda notacja plastra pomiędzy nawiasami interpretowana jest jako tablica ze wskazanym zakresem. Na przykładjest równa
i dla większości zastosowań może zastąpić
Może także obsługiwać bardziej złożone wyrażenia. Na przykład, aby uzyskać indeksy od 0 do 10 i ponownie w dół,
źródło