<jupyter_start><jupyter_text>Numpy Spis treści:* [Import biblioteki](0)* [Ćwiczenie 61](1)* [Ćwiczenie 62](2)* [Ćwiczenie 63](3)* [Ćwiczenie 64](4)* [Ćwiczenie 65](5)* [Ćwiczenie 66](6)* [Ćwiczenie 67](7)* [Ćwiczenie 68](8)* [Ćwiczenie 69](9)* [Ćwiczenie 70](10)  Import biblioteki<jupyter_code>import numpy as np

np.set_printoptions(suppress=True, precision=4)
np.random.seed(42)
np.__version__<jupyter_output><empty_output><jupyter_text>Ćwiczenie 61Podane są poniższe dwie tablice $A$ i $B$:```A = np.array([[3, 4, 9, 2],              [5, 3, 2, 5]])B = np.array([[4, 3, 2, 5],              [6, 3, 1, 6]])```Wyznacz tablicę składającą się ze średnich arytmetycznych tablic $A$ i $B$ odpowiadających im elementów.__Oczekiwany wynik:__```array([[3.5, 3.5, 5.5, 3.5],       [5.5, 3. , 1.5, 5.5]])```<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[3, 4, 9, 2],
              [5, 3, 2, 5]])
B = np.array([[4, 3, 2, 5],
              [6, 3, 1, 6]])

(A + B)/2
np.divide(np.add(A, B), 2)<jupyter_output><empty_output><jupyter_text>Ćwiczenie 62Podane są poniższe dwie tablice $A$ i $B$:```A = np.array([[3, 4, 9, 2],              [5, 3, 2, 5]])B = np.array([[4, 3, 2, 5],              [6, 3, 1, 6]])```Pomnóż tablice przez siebie - element po elemencie (element-wise).<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[3, 4, 9, 2],
              [5, 3, 2, 5]])
B = np.array([[4, 3, 2, 5],
              [6, 3, 1, 6]])

A*B
np.multiply(A, B)<jupyter_output><empty_output><jupyter_text>Ćwiczenie 63Podana jest poniższa tablica $A$:```A = np.array([[3, 4, 9, 2],              [5, 3, 2, 5]])```Wyznacz pierwiastek z każdego elementu tablicy $A$.__Wskazówka:__ Użyj funkcji _np.sqrt()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[3, 4, 9, 2],
              [5, 3, 2, 5]])
np.sqrt(A)<jupyter_output><empty_output><jupyter_text>Ćwiczenie 64Podane są poniższe tablice $A$ oraz $B$:```A = np.linspace(0, np.pi / 2, 20)B = np.full(shape=(20,), fill_value=1, dtype='float')```Sprawdź działanie jedynki trygonometrycznej na tablicy $A$ i następnie porównaj wynik z tablicą $B$. Użyj funkcji _np.allclose()_.__Jedynka trygonometryczna:__ Dla dowolnej wartości kąta $\alpha \in R$ zachodzi:$$sin^2\alpha + cos^2\alpha = 1$$<jupyter_code># tutaj wpisz rozwiązanie
A = np.linspace(0, np.pi / 2, 20)
B = np.full(shape=(20,), fill_value=1, dtype='float')

np.allclose(np.sin(A) **2 + np.cos(A) **2, B) #I sposób
np.allclose(np.power(np.sin(A), 2) + np.power(np.cos(A), 2), B) #II sposób<jupyter_output><empty_output><jupyter_text>Przypomnienie Mnożenie macierzy:$${A} ={\begin{bmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\cdots &a_{mn}\\\end{bmatrix}}$$A - macierz wymairu $m\ x\ n$$$ {B} ={\begin{bmatrix}b_{11}&b_{12}&\cdots &b_{1p}\\b_{21}&b_{22}&\cdots &b_{2p}\\\vdots &\vdots &\ddots &\vdots \\b_{n1}&b_{n2}&\cdots &b_{np}\\\end{bmatrix}}$$B - macierz wymairu $n\ x\ p$$$C = AB$$ C - macierz wymiaru $m\ x\ p$  Aby móc pomnożyć dwie macierze liczba kolumn w lewej macierzy musi zgadzać się z liczbą wierszy prawej macierzy.Mnożenie macierzy nie jest przemienne! Tzn. $$AB \neq BA$$ Przykład 1$ X = \begin{bmatrix}5&3\\3&9\end{bmatrix}$, $ Y= \begin{bmatrix}1\\-1\end{bmatrix} $  $X$ macierz 2x2  $Y$ macierz 2x1$$Z = X \cdot Y = \begin{bmatrix}5&3\\3&9\end{bmatrix} \cdot \begin{bmatrix}1\\-1\end{bmatrix} = \begin{bmatrix}2\\-6\end{bmatrix}$$$Z$ macierz 2x1 Przykład 2$X = \begin{bmatrix}2&-1&3\\3&1&0\end{bmatrix}$, $Y = \begin{bmatrix}2&1&-1\\0&-1&2\\3&2&0\end{bmatrix}$$X$ macierz 2x3  $Y$ macierz 3x3$$Z = X \cdot Y =  \begin{bmatrix}2&-1&3\\3&1&0\end{bmatrix} \cdot \begin{bmatrix}2&1&-1\\0&-1&2\\3&2&0\end{bmatrix} = \begin{bmatrix}13&9&-4\\6&2&-1\end{bmatrix}$$$Z$ macierz 2x3   Ćwiczenie 65Podane są dwie dwuwymiarowe tablice numpy $A$ oraz $B$.  $A$ - macierz wymiaru $(3, 2)$  $B$ - macierz wymiaru $(2, 3)$```A = np.array([[2, 3],              [-4, 2],              [5, 0]])B = np.array([[4, 3, 2],              [-1, 0, 2]])```Dokonaj mnożenia macierzowego tablic $A$ i $B$.__Wskazówka:__ Użyj funkcji _np.dot()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[2, 3],
              [-4, 2],
              [5, 0]])
B = np.array([[4, 3, 2],
              [-1, 0, 2]])
np.dot(A, B) #I sposób
A.dot(B) #II sposób<jupyter_output><empty_output><jupyter_text>Przypomnienie Wyznacznik macierzy:$${\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{bmatrix}}}$$$A$ - macierz wymiaru nxn Oznaczenia:${\displaystyle |A|=\left|{\begin{array}{c}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{array}}\right|} $  lub  $ {\displaystyle \det A=\det {\begin{bmatrix}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{bmatrix}}}$ Przykład:${\displaystyle \det A={\begin{vmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{vmatrix}}=a_{11}a_{22}-a_{12}a_{21}}$${\displaystyle \det A={\begin{vmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{vmatrix}}=a_{11}a_{22}a_{33}+a_{21}a_{32}a_{13}+a_{31}a_{12}a_{23}-a_{21}a_{12}a_{33}-a_{11}a_{32}a_{23}-a_{31}a_{22}a_{13}}$${\displaystyle \det A={\begin{vmatrix}2&4\\-1&3\end{vmatrix}}=2\cdot3-4\cdot(-1)} = 6 + 4 = 10 $   Ćwiczenie 66Podana jest poniższa tablica (macierz kwadratowa) $A$:```A = np.array([[-2, 0, 4],              [5, 2, -1],              [-4, 2, 4]])```Wyznacz wyznacznik macierzy $A$.__Wskazówka:__ Użyj funkcji _np.linalg.det()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[-2, 0, 4],
              [5, 2, -1],
              [-4, 2, 4]])
np.linalg.det(A)<jupyter_output><empty_output><jupyter_text>Ćwiczenie 67Podana jest poniższa tablica (macierz kwadratowa) $A$:```A = np.array([[5, 8, 16],              [4, 1, 8],              [-4, 4, -11]])```Wyznacz wartości własne i odpowiadające im wektory własne macierzy $A$.__Wskazówka:__ Użyj funkcji _np.linalg.eig()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[5, 8, 16],
              [4, 1, 8],
              [-4, 4, -11]])

eigenvalues, eigenvectors = np.linalg.eig(A)
print(eigenvalues) #wartości własne
print(eigenvectors) #wektory własne<jupyter_output>[-9.2462 -3.      7.2462]
[[-0.6262 -0.8944  0.8902]
 [-0.3131  0.      0.4451]
 [ 0.7141  0.4472 -0.0976]]<jupyter_text>Przypomnienie Macierz odwrotna:$A$ - macierz kwadratowa stopnia $n$. Macierz $A$ posiada macierz odwrotną, gdy istnieje macierz $B$, taka, że$$AB = BA = I$$$A = \begin{bmatrix}2&4\\-1&3\end{bmatrix}$   Ćwiczenie 68Podana jest poniższa tablica (macierz kwadratowa) $A$:```A = np.array([[5, 8, 16],              [4, 1, 8],              [-4, 4, -11]])```Wyznacz macierz odwrotną do macierzy $A$.__Wskazówka:__ Użyj funkcji _np.linalg.inv()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[5, 8, 16],
              [4, 1, 8],
              [-4, 4, -11]])

np.linalg.inv(A)
np.dot(A, np.linalg.inv(A)) #sprawdzenie<jupyter_output><empty_output><jupyter_text>Przypomnienie Ślad macierzy:$${\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\dots &a_{nn}\end{bmatrix}}}$$$A$ - macierz wymiaru nxn${\displaystyle \operatorname {tr} (A)=\sum _{i=1}^{n}a_{ii}=a_{11}+a_{22}+\dots +a_{nn}}$ Przykład:$A = \begin{bmatrix}2&4\\-1&3\end{bmatrix}$${\displaystyle \operatorname {tr} (A)=\sum _{i=1}^{2}a_{ii}=a_{11}+a_{22} = 2 + 3 = 5}$   Ćwiczenie 69Podana jest poniższa tablica (macierz kwadratowa) $A$:```A = np.array([[5, 8, 16],              [4, 1, 8],              [-4, 4, -11]])```Wyznacz ślad macierzy kwadratowej $A$ (suma elementów na głównej przekątnej).__Wskazówka:__ Użyj funkcji _np.trace()_.<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[5, 8, 16],
              [4, 1, 8],
              [-4, 4, -11]])

np.trace(A)<jupyter_output><empty_output><jupyter_text>Przypomnienie Macierz transponowana:Zamiana wierszy na kolumny i kolumny na wiersze. Przykład 1:$A = \begin{bmatrix}2&4\\-1&3\end{bmatrix}$,$A^{T} = \begin{bmatrix}2&-1\\4&3\end{bmatrix}$ Przykład 2:$A = \begin{bmatrix}2&1&-1\\0&-1&2\end{bmatrix}$,$A^{T} = \begin{bmatrix}2&0\\1&-1\\-1&2\end{bmatrix}$  Ćwiczenie 69 c.d.Dokonaj transpozycji macierzy $A$.<jupyter_code># tutaj wpisz rozwiązanie
A.T
np.transpose(A)<jupyter_output><empty_output><jupyter_text>Ćwiczenie 70Podane są dwie dwuwymiarowe tablice numpy $A$ oraz $B$:   $A$ - macierz wymiaru $(4, 2)$  $B$ - macierz wymiaru $(1, 8)$```A = np.array([[2, 0],              [4, 2],              [5, 3],              [4, 2]])B = np.array([[4, 0, 2, 1, 1, 0, 2, 9]])```Przekształć tablicę $B$ tak, aby można było dokonać mnożenia macierzowego $A \cdot B$. Wykonaj to mnożenie.__Oczekiwany wynik:__```array([[ 8,  0,  4,  2],       [18,  0, 12, 22],       [23,  0, 16, 32],       [18,  0, 12, 22]])```<jupyter_code># tutaj wpisz rozwiązanie
A = np.array([[2, 0],
              [4, 2],
              [5, 3],
              [4, 2]])
B = np.array([[4, 0, 2, 1, 1, 0, 2, 9]])

print(A.shape)
print(B.shape)
np.dot(A, B.reshape(2, -1))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.22351154972345733, 'fraction_numerical': 0.0721179915410476, 'mean_word_length': 3.8511309836927934, 'pattern_counts': {'":': 0, '<': 48, '<?xml version=': 0, '>': 48, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '409895', 'license': 'CC0-1.0', 'n_tokens_mistral': 4611, 'n_tokens_neox': 4278, 'n_words': 824, 'path': '01_numpy_cwiczenia/061_070_exercises.ipynb', 'repo_name': 'Sylwiaes/numpy_pandas_cwiczenia', 'size': '9221'}