<jupyter_start><jupyter_text>* @author: <EMAIL>  * @site: e-smartdata.org  NumPy>Strona biblioteki: [https://numpy.org/](https://numpy.org/)  >Dokumentacja: [https://numpy.org/doc/](https://numpy.org/doc/)  >>Podstawowa biblioteka do obliczeń numerycznych w języku Python.>>Aby zainstalować bibliotekę NumPy, użyj polecenia poniżej:```pip install numpy``` Spis treści:1. [Norma wektora, długość wektora w $R^{2}$](a1)2. [Norma euklidesowa $R^{n}$](a2)3. [Odległóść dwóch punktów na płaszczyźnie](a3)4. [Odległóść dwóch punktów w przestrzeni $R^{n}$](a4)5. [Mnożenie macierzy](a5)6. [Wyznacznik macierzy](a6)7. [Ślad macierzy](a7)8. [Macierz jednostkowa](a8)9. [ Macierz odwrotna](a9)10. [Macierz transponowana](a10)11. [Rozwiązywanie układów równań](a11)<jupyter_code>import numpy as np
np.__version__<jupyter_output><empty_output><jupyter_text>Norma wektora, długość wektora w $R^{2}$${\mathbf  {v}} = [v_{1}, v_{2}]$   $\left\|{\mathbf  {v}}\right\|={\sqrt  {v_{1}^{2}+v_{2}^{2}}}$<jupyter_code>v1 = np.array([-1, 4])
v1
np.linalg.norm(v1)<jupyter_output><empty_output><jupyter_text>Norma euklidesowa w $R^{n}$$\left\|{\mathbf  {v}}\right\|={\sqrt  {v_{1}^{2}+v_{2}^{2}+\cdots +v_{n}^{2}}}$<jupyter_code>v2 = np.array([-10, 10, 13])
np.linalg.norm(v2)<jupyter_output><empty_output><jupyter_text>Odległóść dwóch punktów na płaszczyźnie<jupyter_code>p = np.array([3, 0])
q = np.array([0, 4])

np.linalg.norm(p - q)<jupyter_output><empty_output><jupyter_text>Odległóść dwóch punktów w przestrzeni $R^{n}$  \begin{aligned}d(\mathbf {p} ,\mathbf {q} )=d(\mathbf {q} ,\mathbf {p} )&={\sqrt {(q_{1}-p_{1})^{2}+(q_{2}-p_{2})^{2}+\cdots +(q_{n}-p_{n})^{2}}}\\[8pt]&={\sqrt {\sum _{i=1}^{n}(q_{i}-p_{i})^{2}}}\end{aligned}<jupyter_code>p = np.array([3, 0, 1])
q = np.array([0, 4, 2])

np.linalg.norm(p - q)<jupyter_output><empty_output><jupyter_text>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 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<jupyter_code>X = np.array([[5, 3], [3, 9]])
Y = np.array([[1], [-1]])
print(X, '\n')
print(Y)
Z = np.dot(X, Y)
Z
Z.shape<jupyter_output><empty_output><jupyter_text>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<jupyter_code>X = np.array([[2, -1, 3],
              [3, 1, 0]])
Y = np.array([[2, 1, -1],
              [0, -1, 2],
              [3, 2, 0]])

print(X, '\n')
print(Y)
np.dot(X, Y)<jupyter_output><empty_output><jupyter_text>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 $<jupyter_code>A = np.array([[2, 4], [-1, 3]])
round(np.linalg.det(A))<jupyter_output><empty_output><jupyter_text>Ś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}$<jupyter_code>A = np.array([[2, 4], [-1, 3]])
np.trace(A)<jupyter_output><empty_output><jupyter_text>Macierz jednostkowa Macierz jednostkowa - macierz kwadratowa, której współczynniki podane są wzorem:$${\displaystyle a_{ij}={\begin{cases}1\quad {\text{dla}}\quad i=j\\[2pt]0\quad {\text{dla}}\quad i\neq j\end{cases}}}$$ Przykłady${\displaystyle I_{1}={\begin{bmatrix}1\end{bmatrix}},\;I_{2}={\begin{bmatrix}1&0\\0&1\end{bmatrix}},\;I_{3}={\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}}}$<jupyter_code>np.eye(5, dtype='int')
np.eye(3)<jupyter_output><empty_output><jupyter_text>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}$<jupyter_code>B = np.linalg.inv(A)
B
np.set_printoptions(precision=4, suppress=True)

np.dot(A, B)
np.dot(B, A)<jupyter_output><empty_output><jupyter_text>Macierz transponowanaZamiana 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}$<jupyter_code>np.transpose(A)
A.T<jupyter_output><empty_output><jupyter_text>Rozwiązywanie układów równańRozważmy układ równań $U$:  $${\displaystyle \mathrm {U} \colon {\begin{cases}{\begin{matrix}a_{11}x_{1}&+&a_{12}x_{2}&+&\dots &+&a_{1n}x_{n}&=b_{1},\\a_{21}x_{1}&+&a_{22}x_{2}&+&\dots &+&a_{2n}x_{n}&=b_{2},\\\vdots &&\vdots &&\ddots &&\vdots &\vdots \\a_{m1}x_{1}&+&a_{m2}x_{2}&+&\dots &+&a_{mn}x_{n}&=b_{m}.\end{matrix}}\end{cases}}.}$$Wykorzystując macierze możemy to przedstawić następująco:$${\begin{bmatrix}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\dots &a_{mn}\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\\\vdots \\x_{n}\end{bmatrix}}={\begin{bmatrix}b_{1}\\b_{2}\\\vdots \\b_{m}\end{bmatrix}}$$I w zapisie skrótowym:$$\mathbf {AX} =\mathbf {B}$$Gdzie:  $A = {\begin{bmatrix}a_{11}&a_{12}&\dots &a_{1n}\\a_{21}&a_{22}&\dots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\dots &a_{mn}\end{bmatrix}}$ - macierz współczynników${\displaystyle \mathbf {B} =[b_{1},b_{2},\dots ,b_{m}]} $ - wektor wyrazów wolnych  ${\mathbf  X}=[x_{1},x_{2},\dots ,x_{n}] $ - wektor niewiadomychJeśli macierz układu $A$ jest macierzą kwadratową, to oznaczoność układu jest równoważna jej odwracalności, tzn.$$\mathbf {AX} =\mathbf {B}$$$${\displaystyle \mathbf {A} ^{-1}\mathbf {AX} =\mathbf {A} ^{-1}\mathbf {B}} $$$$\mathbf {X} =\mathbf {A} ^{-1}\mathbf {B} .$$ Przykład:Rozważmy układ równań:$$\begin{cases}2x + 4y = 10 \\ x - y = -1 \end{cases}$$  Rozwiązaniem jest para liczb:$$\begin{cases}x = 1 \\ y = 2 \end{cases}$$<jupyter_code>A = np.array([[2, 4], [1, -1]])
print(A)
B = np.array([[10], [-1]])
print(B)
A_inv = np.linalg.inv(A)
X = np.dot(A_inv, B)
X
X.shape<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.26531121367094923, 'fraction_numerical': 0.05687913184482973, 'mean_word_length': 5.794915254237288, 'pattern_counts': {'":': 0, '<': 54, '<?xml version=': 0, '>': 60, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '13', 'dir': 'jupyter-structured-clean-dedup', 'id': '361934', 'license': 'MIT', 'n_tokens_mistral': 3995, 'n_tokens_neox': 3733, 'n_words': 536, 'path': '01_wprowadzenie/02_algebra_liniowa.ipynb', 'repo_name': 'hulkavocado/data_science_bootcamp_master_storage', 'size': '8035'}