import numpy as np
np.array([0,1,2,3,4,5]) # wektor sześcioelementowy
np.array([[1,2,3],[4,5,6],[7,8,9]]) # macierz n=3
np.eye(3) # macierz jednostkowa
np.eye(3,dtype = np.bool_) # jak wyżej ale z określonym typem elementów
np.diag([1,7,9]) # macierz diagonalna
np.zeros((4,5)) # macierz zerowa
np.ones((5,5)) # macierz wypelniona jedynkami
x.reshape(1,9) # zmiana kształtu tablicy
np.arange(1,5,0.5) # ciąg liczb od 1 do 5 (bez 5) z krokiem 0.5
np.arange(32).reshape((8, 4))
np.linspace(1,6,6) # ciąg arytmetyczny liczb z przedziału od 1 do 6 o długości 6
x.ravel() # zmiana tablicy na wektor
x.tolist() # konwersja tablicy na listę
x = x.astype(np.float64) # konwersja
x.ndim # wymiar tablicy
x.shape # N-elementowa krotka określająca rozmiar dla każdego wymiaru
x.size # liczba wszystkich elementów
x.len # liczba elementów w pierwszym wymiarze
x.dtype # określenie typu danych
random.rand(3,4)) # rozkład jednostajny na przedziale od 0 do 1
np.random.randn(3,4) # rozkład normalny standardowy
np.repeat("a",5) # powtarza 5 razy napis "a" np.tile("a",5) # powtarza 5 razy napis "a"
np.repeat([1,2,1],4)
Out[]: array([1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1])
np.repeat([1,2,3],(2,3,4))
Out[]: array([1, 1, 2, 2, 2, 3, 3, 3, 3])
np.repeat([[1,2],[3,4]],(4,5),axis = 1) # axis = 1 - kolumna
Out[]:
array([[1, 1, 1, 1, 2, 2, 2, 2, 2],
[3, 3, 3, 3, 4, 4, 4, 4, 4]])
np.repeat([[1,2],[3,4]],(4,5),axis = 0) # axis = 0 - wiersz
Out[]:
array([[1, 2],
[1, 2],
[1, 2],
[1, 2],
[3, 4],
[3, 4],
[3, 4],
[3, 4],
[3, 4]])
np.append(np.array([1,2,2]),0.4) # dodanie elementu do tablicy, wynik zawsze w postaci wektora
L = np.array([[1,2,3],[4,5,6],[7,8,9]])
np.append(L,np.tile(0.5,(3,1)),axis = 1) # nowa kolumna
np.column_stack((L,[1,2,3])) # nowa kolumna
np.insert(L,[1],[9],axis = 1) # po pierwszej kolumnie wstawia kolumnę 9
np.append(L,np.tile(0.5,(1,3)),axis = 0) # nowy wiersz
np.row_stack((L,[1,2,3]) # nowy wiersz
np.insert(L,[1],[9],axis = 0) # po pierwszym wierszu wstawia wiersz 9
np.concatenate((A,L),axis=0) # łączenie macierzy
objekt r_
np.r_[1,1,4]
Out[]: array([1, 1, 4])
np.r_[1,[2]*5,4]
Out[]: array([1, 2, 2, 2, 2, 2, 4])
np.r_[1:4]
Out[]: array([1, 2, 3])
np.r_[1:4:0.5]
Out[]: array([1. , 1.5, 2. , 2.5, 3. , 3.5])
M = np.array([[1,2,3],[4,5,5],[1,0,9]])
np.cumsum(s) # w przypadku macierzy axis = 0 dla wiersza i axis = 1 dla kolumny
Out[]: array([ 0, 2, 6, 12, 20, 30, 42, 56, 72, 90])
np.diff(s)
Out[]: array([2, 2, 2, 2, 2, 2, 2, 2, 2])
# Indeksowanie tablic
x[2:7:2] # elementy od 2 do 7(bez ostatniego) oddalone od siebie o 2
x[[0,2,3,7]] # indeksowanie wektorem
x[[True,True,False,False,True,True,False,False,False,True]] # indeksowanie wektorem logicznym
x[2::2] # bez 2 pierwszych i 2 na końcu
x[x % 2 == 0] # wybranie elementow o wartosciach parzystych
x[3][0] # zerowy element trzeciego wiersza
x[(3,0)] # zerowy element trzeciego wiersza
x[:,2:4:1] # trzecia kolumna
x[0:3:1,:] # pierwsze trzy wiersze
x[np.ix_([0,1],[1,2])] # wybieramy 0 i 1 wiersz oraz 1 i 2 kolumne
# Wyszukiwanie numerow indeksow elementow spelniajacych dany warunek
np.nonzero(x == 5) # numery indeksow ktorych elementy maja wartosc 5
np.nonzero(A == 1) # numery indeksow ktorych elementy maja wartosc 1
np.where(x == 2)
arr = np.random.randn(1000)
(arr > 0).sum() # sprawdza ile elementów jest większych od 0
a = (True, True, False)
b = (1, 1, 1)
c = (2, 2, 2
np.where(a, b, c)
Out[]: array([1, 1, 2]))
np.where(x > 0, 2, -2) # gdzie x > 0 podmień na 2, reszta na -2