# Python AI
## 25.03
Zalogowałem się do classroom.google.com kontem sasza.stanczew@gmail.com
główne środowisko treningu to Google Collab - bo łatwiej będzie ogarnąć zależności itp, a poza tym Anacondę nie zainstalojemy bo łamałoby to licencję

### Środowisko
 - Anaconda - dystrybucja zawierająca Python oraz najważniejsze biblioteki analityczne
 - Jupyter Notebook - interkatywne środowisko umożiwiające łączenie kodu, tekstu i wizualizacji

Instalacja - pobrać Anacondę z oficjalnej strony i zainstalować
Następnie uruchomić Jupyter Notebook przez Anaconda Navigator (lub `jupyter notebook`)
Alternatywy: Google Collab, VSCode z rozszerzeniami Python i Jupyter

### Analiza danych w Pythonie

#### Bublioteki
##### NumPy
 - obliczenia numeryczne, praca z macierzami i tablicami
##### Pandas
 - analiza danych tabelarycznych - import, czyszczenie i zanaliza danych. Oferuje ramki danych i szeregi

#### Google Collab - nowy notebook - to jest praktycznie Jupyter
 - 

#### Można też zainstalować anaconda albo JupyterLab - działa fajnie


### NumPy
 - obliczenia na dużych zestawach danych
 - nie będziemy korzystać bezpośrednio - bo większość szerszych frameworków korzysta z NumPy pod spodem, np Pandas


### Analiza danych w Pythonie
#### Podstawowe pojęcia
 - macierze - tablice wierowymiarowe - zawierają elementy tego samego typu
 - szeregi - jednowymiarowe tablice. mogą mieć etykiety dla indeksów
 - ramki danych - tablice dwuwymiarowe, składają się z kolumn różnych typów

#### NumPy
 - fukcje matematyczne
   - trygonometria, geometria, statystyka
 - np.random
 - maski logiczne, filtrowanie danych
 - broadcasting - rozszerzanie małych tablic przy operacjach na większych tablicach

Statystyka:
 - np.mean(), np.median(), np.std(), np.max(), np.min()

tworzenie tablic:
 - np.zeros(), np.ones(), np.arange()

z NumPy faktycznie się nie korzysta na codzień, bo Pandas to wszystko opakowywuje

#### Pandas
jest też Polars - nowy, dynamicznie rozwijany, oparty na chmurze, dużo szybszy od Pandas

Pamdas jest głównie używany do analizy danych, przygotowanie danych do machine learningu

##### Import danych do Pandas
pd.read_csv(), read_sql(), read_excel() itp itd, bardo dużo formatów

## 26.03
### Czyszczenie i przygotowywanie danych
Tak na prawdę, ten proces zajmuje najwięcej czasu programowania, bo najważniejsze jest to aby ML miał na wejściu dobre dane.

knime.com - programowanie za pomocą klocków
można wyeksportować jako Jupyter Notebook działający kod

#### Dane długie i szerokie
 - dane 'long' - dane powtarzalne, np data (bo może być dużo wierszy z tą samą datą)
 - dane 'wide' - dane któ©e mają dużo kolumn




