Pliki JupyterLab i testowy jakiś kod

This commit is contained in:
Sasza Stanczew 2025-03-25 13:05:33 +01:00
parent a2c76a1185
commit 1a7878cdaf
7 changed files with 2282 additions and 0 deletions

1
PythonAI/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
**/.ipynb_checkpoints

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,230 @@
Date,Close
2019-01-02,157.919998
2019-01-03,142.190002
2019-01-04,148.259995
2019-01-07,147.929993
2019-01-08,150.75
2019-01-09,153.309998
2019-01-10,153.800003
2019-01-11,152.289993
2019-01-14,150
2019-01-15,153.070007
2019-01-16,154.940002
2019-01-17,155.860001
2019-01-18,156.820007
2019-01-22,153.300003
2019-01-23,153.919998
2019-01-24,152.699997
2019-01-25,157.759995
2019-01-28,156.300003
2019-01-29,154.679993
2019-01-30,165.25
2019-01-31,166.440002
2019-02-01,166.520004
2019-02-04,171.25
2019-02-05,174.179993
2019-02-06,174.240005
2019-02-07,170.940002
2019-02-08,170.410004
2019-02-11,169.429993
2019-02-12,170.889999
2019-02-13,170.179993
2019-02-14,170.800003
2019-02-15,170.419998
2019-02-19,170.929993
2019-02-20,172.029999
2019-02-21,171.059998
2019-02-22,172.970001
2019-02-25,174.229996
2019-02-26,174.330002
2019-02-27,174.869995
2019-02-28,173.149994
2019-03-01,174.970001
2019-03-04,175.850006
2019-03-05,175.529999
2019-03-06,174.520004
2019-03-07,172.5
2019-03-08,172.910004
2019-03-11,178.899994
2019-03-12,180.910004
2019-03-13,181.710007
2019-03-14,183.729996
2019-03-15,186.119995
2019-03-18,188.020004
2019-03-19,186.529999
2019-03-20,188.160004
2019-03-21,195.089996
2019-03-22,191.050003
2019-03-25,188.740005
2019-03-26,186.789993
2019-03-27,188.470001
2019-03-28,188.720001
2019-03-29,189.949997
2019-04-01,191.240005
2019-04-02,194.020004
2019-04-03,195.350006
2019-04-04,195.690002
2019-04-05,197
2019-04-08,200.100006
2019-04-09,199.5
2019-04-10,200.619995
2019-04-11,198.949997
2019-04-12,198.869995
2019-04-15,199.229996
2019-04-16,199.25
2019-04-17,203.130005
2019-04-18,203.860001
2019-04-22,204.529999
2019-04-23,207.479996
2019-04-24,207.160004
2019-04-25,205.279999
2019-04-26,204.300003
2019-04-29,204.610001
2019-04-30,200.669998
2019-05-01,210.520004
2019-05-02,209.149994
2019-05-03,211.75
2019-05-06,208.479996
2019-05-07,202.860001
2019-05-08,202.899994
2019-05-09,200.720001
2019-05-10,197.179993
2019-05-13,185.720001
2019-05-14,188.660004
2019-05-15,190.919998
2019-05-16,190.080002
2019-05-17,189
2019-05-20,183.089996
2019-05-21,186.600006
2019-05-22,182.779999
2019-05-23,179.660004
2019-05-24,178.970001
2019-05-28,178.229996
2019-05-29,177.380005
2019-05-30,178.300003
2019-05-31,175.070007
2019-06-03,173.300003
2019-06-04,179.639999
2019-06-05,182.539993
2019-06-06,185.220001
2019-06-07,190.149994
2019-06-10,192.580002
2019-06-11,194.809998
2019-06-12,194.190002
2019-06-13,194.149994
2019-06-14,192.740005
2019-06-17,193.889999
2019-06-18,198.449997
2019-06-19,197.869995
2019-06-20,199.460007
2019-06-21,198.779999
2019-06-24,198.580002
2019-06-25,195.570007
2019-06-26,199.800003
2019-06-27,199.740005
2019-06-28,197.919998
2019-07-01,201.550003
2019-07-02,202.729996
2019-07-03,204.410004
2019-07-05,204.229996
2019-07-08,200.020004
2019-07-09,201.240005
2019-07-10,203.229996
2019-07-11,201.75
2019-07-12,203.300003
2019-07-15,205.210007
2019-07-16,204.5
2019-07-17,203.350006
2019-07-18,205.660004
2019-07-19,202.589996
2019-07-22,207.220001
2019-07-23,208.839996
2019-07-24,208.669998
2019-07-25,207.020004
2019-07-26,207.740005
2019-07-29,209.679993
2019-07-30,208.779999
2019-07-31,213.039993
2019-08-01,208.429993
2019-08-02,204.020004
2019-08-05,193.339996
2019-08-06,197
2019-08-07,199.039993
2019-08-08,203.429993
2019-08-09,200.990005
2019-08-12,200.479996
2019-08-13,208.970001
2019-08-14,202.75
2019-08-15,201.740005
2019-08-16,206.5
2019-08-19,210.350006
2019-08-20,210.360001
2019-08-21,212.639999
2019-08-22,212.460007
2019-08-23,202.639999
2019-08-26,206.490005
2019-08-27,204.160004
2019-08-28,205.529999
2019-08-29,209.009995
2019-08-30,208.740005
2019-09-03,205.699997
2019-09-04,209.190002
2019-09-05,213.279999
2019-09-06,213.259995
2019-09-09,214.169998
2019-09-10,216.699997
2019-09-11,223.589996
2019-09-12,223.089996
2019-09-13,218.75
2019-09-16,219.899994
2019-09-17,220.699997
2019-09-18,222.770004
2019-09-19,220.960007
2019-09-20,217.729996
2019-09-23,218.720001
2019-09-24,217.679993
2019-09-25,221.029999
2019-09-26,219.889999
2019-09-27,218.820007
2019-09-30,223.970001
2019-10-01,224.589996
2019-10-02,218.960007
2019-10-03,220.820007
2019-10-04,227.009995
2019-10-07,227.059998
2019-10-08,224.399994
2019-10-09,227.029999
2019-10-10,230.089996
2019-10-11,236.210007
2019-10-14,235.869995
2019-10-15,235.320007
2019-10-16,234.369995
2019-10-17,235.279999
2019-10-18,236.410004
2019-10-21,240.509995
2019-10-22,239.960007
2019-10-23,243.179993
2019-10-24,243.580002
2019-10-25,246.580002
2019-10-28,249.050003
2019-10-29,243.289993
2019-10-30,243.259995
2019-10-31,248.759995
2019-11-01,255.820007
2019-11-04,257.5
2019-11-05,257.130005
2019-11-06,257.23999
2019-11-07,259.429993
2019-11-08,260.140015
2019-11-11,262.200012
2019-11-12,261.959991
2019-11-13,264.470001
2019-11-14,262.640015
2019-11-15,265.76001
2019-11-18,267.100006
2019-11-19,266.290009
2019-11-20,263.190002
2019-11-21,262.01001
2019-11-22,261.779999
2019-11-25,266.369995
2019-11-26,264.290009
1 Date Close
2 2019-01-02 157.919998
3 2019-01-03 142.190002
4 2019-01-04 148.259995
5 2019-01-07 147.929993
6 2019-01-08 150.75
7 2019-01-09 153.309998
8 2019-01-10 153.800003
9 2019-01-11 152.289993
10 2019-01-14 150
11 2019-01-15 153.070007
12 2019-01-16 154.940002
13 2019-01-17 155.860001
14 2019-01-18 156.820007
15 2019-01-22 153.300003
16 2019-01-23 153.919998
17 2019-01-24 152.699997
18 2019-01-25 157.759995
19 2019-01-28 156.300003
20 2019-01-29 154.679993
21 2019-01-30 165.25
22 2019-01-31 166.440002
23 2019-02-01 166.520004
24 2019-02-04 171.25
25 2019-02-05 174.179993
26 2019-02-06 174.240005
27 2019-02-07 170.940002
28 2019-02-08 170.410004
29 2019-02-11 169.429993
30 2019-02-12 170.889999
31 2019-02-13 170.179993
32 2019-02-14 170.800003
33 2019-02-15 170.419998
34 2019-02-19 170.929993
35 2019-02-20 172.029999
36 2019-02-21 171.059998
37 2019-02-22 172.970001
38 2019-02-25 174.229996
39 2019-02-26 174.330002
40 2019-02-27 174.869995
41 2019-02-28 173.149994
42 2019-03-01 174.970001
43 2019-03-04 175.850006
44 2019-03-05 175.529999
45 2019-03-06 174.520004
46 2019-03-07 172.5
47 2019-03-08 172.910004
48 2019-03-11 178.899994
49 2019-03-12 180.910004
50 2019-03-13 181.710007
51 2019-03-14 183.729996
52 2019-03-15 186.119995
53 2019-03-18 188.020004
54 2019-03-19 186.529999
55 2019-03-20 188.160004
56 2019-03-21 195.089996
57 2019-03-22 191.050003
58 2019-03-25 188.740005
59 2019-03-26 186.789993
60 2019-03-27 188.470001
61 2019-03-28 188.720001
62 2019-03-29 189.949997
63 2019-04-01 191.240005
64 2019-04-02 194.020004
65 2019-04-03 195.350006
66 2019-04-04 195.690002
67 2019-04-05 197
68 2019-04-08 200.100006
69 2019-04-09 199.5
70 2019-04-10 200.619995
71 2019-04-11 198.949997
72 2019-04-12 198.869995
73 2019-04-15 199.229996
74 2019-04-16 199.25
75 2019-04-17 203.130005
76 2019-04-18 203.860001
77 2019-04-22 204.529999
78 2019-04-23 207.479996
79 2019-04-24 207.160004
80 2019-04-25 205.279999
81 2019-04-26 204.300003
82 2019-04-29 204.610001
83 2019-04-30 200.669998
84 2019-05-01 210.520004
85 2019-05-02 209.149994
86 2019-05-03 211.75
87 2019-05-06 208.479996
88 2019-05-07 202.860001
89 2019-05-08 202.899994
90 2019-05-09 200.720001
91 2019-05-10 197.179993
92 2019-05-13 185.720001
93 2019-05-14 188.660004
94 2019-05-15 190.919998
95 2019-05-16 190.080002
96 2019-05-17 189
97 2019-05-20 183.089996
98 2019-05-21 186.600006
99 2019-05-22 182.779999
100 2019-05-23 179.660004
101 2019-05-24 178.970001
102 2019-05-28 178.229996
103 2019-05-29 177.380005
104 2019-05-30 178.300003
105 2019-05-31 175.070007
106 2019-06-03 173.300003
107 2019-06-04 179.639999
108 2019-06-05 182.539993
109 2019-06-06 185.220001
110 2019-06-07 190.149994
111 2019-06-10 192.580002
112 2019-06-11 194.809998
113 2019-06-12 194.190002
114 2019-06-13 194.149994
115 2019-06-14 192.740005
116 2019-06-17 193.889999
117 2019-06-18 198.449997
118 2019-06-19 197.869995
119 2019-06-20 199.460007
120 2019-06-21 198.779999
121 2019-06-24 198.580002
122 2019-06-25 195.570007
123 2019-06-26 199.800003
124 2019-06-27 199.740005
125 2019-06-28 197.919998
126 2019-07-01 201.550003
127 2019-07-02 202.729996
128 2019-07-03 204.410004
129 2019-07-05 204.229996
130 2019-07-08 200.020004
131 2019-07-09 201.240005
132 2019-07-10 203.229996
133 2019-07-11 201.75
134 2019-07-12 203.300003
135 2019-07-15 205.210007
136 2019-07-16 204.5
137 2019-07-17 203.350006
138 2019-07-18 205.660004
139 2019-07-19 202.589996
140 2019-07-22 207.220001
141 2019-07-23 208.839996
142 2019-07-24 208.669998
143 2019-07-25 207.020004
144 2019-07-26 207.740005
145 2019-07-29 209.679993
146 2019-07-30 208.779999
147 2019-07-31 213.039993
148 2019-08-01 208.429993
149 2019-08-02 204.020004
150 2019-08-05 193.339996
151 2019-08-06 197
152 2019-08-07 199.039993
153 2019-08-08 203.429993
154 2019-08-09 200.990005
155 2019-08-12 200.479996
156 2019-08-13 208.970001
157 2019-08-14 202.75
158 2019-08-15 201.740005
159 2019-08-16 206.5
160 2019-08-19 210.350006
161 2019-08-20 210.360001
162 2019-08-21 212.639999
163 2019-08-22 212.460007
164 2019-08-23 202.639999
165 2019-08-26 206.490005
166 2019-08-27 204.160004
167 2019-08-28 205.529999
168 2019-08-29 209.009995
169 2019-08-30 208.740005
170 2019-09-03 205.699997
171 2019-09-04 209.190002
172 2019-09-05 213.279999
173 2019-09-06 213.259995
174 2019-09-09 214.169998
175 2019-09-10 216.699997
176 2019-09-11 223.589996
177 2019-09-12 223.089996
178 2019-09-13 218.75
179 2019-09-16 219.899994
180 2019-09-17 220.699997
181 2019-09-18 222.770004
182 2019-09-19 220.960007
183 2019-09-20 217.729996
184 2019-09-23 218.720001
185 2019-09-24 217.679993
186 2019-09-25 221.029999
187 2019-09-26 219.889999
188 2019-09-27 218.820007
189 2019-09-30 223.970001
190 2019-10-01 224.589996
191 2019-10-02 218.960007
192 2019-10-03 220.820007
193 2019-10-04 227.009995
194 2019-10-07 227.059998
195 2019-10-08 224.399994
196 2019-10-09 227.029999
197 2019-10-10 230.089996
198 2019-10-11 236.210007
199 2019-10-14 235.869995
200 2019-10-15 235.320007
201 2019-10-16 234.369995
202 2019-10-17 235.279999
203 2019-10-18 236.410004
204 2019-10-21 240.509995
205 2019-10-22 239.960007
206 2019-10-23 243.179993
207 2019-10-24 243.580002
208 2019-10-25 246.580002
209 2019-10-28 249.050003
210 2019-10-29 243.289993
211 2019-10-30 243.259995
212 2019-10-31 248.759995
213 2019-11-01 255.820007
214 2019-11-04 257.5
215 2019-11-05 257.130005
216 2019-11-06 257.23999
217 2019-11-07 259.429993
218 2019-11-08 260.140015
219 2019-11-11 262.200012
220 2019-11-12 261.959991
221 2019-11-13 264.470001
222 2019-11-14 262.640015
223 2019-11-15 265.76001
224 2019-11-18 267.100006
225 2019-11-19 266.290009
226 2019-11-20 263.190002
227 2019-11-21 262.01001
228 2019-11-22 261.779999
229 2019-11-25 266.369995
230 2019-11-26 264.290009

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,226 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "d057e434",
"metadata": {},
"source": [
"# 🧠 Dzień 1: Środowisko pracy analityka i NumPy\n"
]
},
{
"cell_type": "markdown",
"id": "87a3a255",
"metadata": {},
"source": [
"## 🔧 Konfiguracja środowiska\n",
"Zainstaluj Anacondę i utwórz środowisko Conda o nazwie `ml-env`:\n",
"\n",
"```bash\n",
"conda create -n ml-env python=3.12\n",
"conda activate ml-env\n",
"```\n",
"\n",
"Możesz także użyć `pip` do instalacji paczek:\n",
"\n",
"```bash\n",
"pip install numpy pandas jupyter\n",
"```\n"
]
},
{
"cell_type": "markdown",
"id": "f7fb0290",
"metadata": {},
"source": [
"## 📓 Jupyter Notebook podstawy\n",
"- Komórki kodu i Markdown\n",
"- Skróty klawiszowe (`Ctrl+Enter`, `Shift+Enter`, `A`, `B` itd.)\n",
"\n",
"**Zadanie:** Stwórz komórkę Markdown i wpisz nagłówek oraz listę punktowaną."
]
},
{
"cell_type": "markdown",
"id": "18bf84af",
"metadata": {},
"source": [
"## 🔢 NumPy podstawy\n",
"- Tworzenie wektorów i macierzy\n",
"- Operacje matematyczne\n",
"- Wektoryzacja i broadcasting\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e3bfabbb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3]\n",
"[[1 2]\n",
" [3 4]]\n"
]
}
],
"source": [
"# Przykład: stworzenie wektora i macierzy\n",
"import numpy as np\n",
"\n",
"wektor = np.array([1, 2, 3])\n",
"macierz = np.array([[1, 2], [3, 4]])\n",
"print(wektor)\n",
"print(macierz)"
]
},
{
"cell_type": "markdown",
"id": "666b0410",
"metadata": {},
"source": [
"### ✍️ Zadanie 1\n",
"Stwórz:\n",
"- wektor 1D z liczbami od 10 do 20\n",
"- macierz 3x3 z losowymi liczbami całkowitymi od 0 do 100"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "10555f08",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[10 11 12 13 14 15 16 17 18 19 20]\n",
"[[26 84 24]\n",
" [92 74 70]\n",
" [91 15 14]]\n"
]
}
],
"source": [
"# Zadanie 1 Przykładowe rozwiązanie\n",
"wektor = np.arange(10, 21)\n",
"macierz = np.random.randint(0, 101, size=(3, 3))\n",
"print(wektor)\n",
"print(macierz)"
]
},
{
"cell_type": "markdown",
"id": "3660456f",
"metadata": {},
"source": [
"### ✍️ Zadanie 2\n",
"Wykonaj dodawanie, mnożenie i dzielenie elementów dwóch tablic NumPy o takim samym rozmiarze."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "64897ffd",
"metadata": {},
"outputs": [],
"source": [
"# Zadanie 2 Przykładowe rozwiązanie\n",
"a = np.array([1, 2, 3])\n",
"b = np.array([4, 5, 6])\n",
"print(\"Dodawanie:\", a + b)\n",
"print(\"Mnożenie:\", a * b)\n",
"print(\"Dzielenie:\", a / b)"
]
},
{
"cell_type": "markdown",
"id": "92dc2d65",
"metadata": {},
"source": [
"## 🎯 Wektoryzacja i broadcasting\n",
"Pokażmy, jak NumPy automatycznie rozszerza kształty macierzy:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7d8b1810",
"metadata": {},
"outputs": [],
"source": [
"a = np.array([1, 2, 3])\n",
"b = 10\n",
"a * b # broadcasting mnożenia przez skalar"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a2a2bb9d",
"metadata": {},
"outputs": [],
"source": [
"# Zadanie 3 Przykładowe rozwiązanie\n",
"macierz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])\n",
"wektor = np.array([10, 20, 30])\n",
"# Dodanie wektora do każdej kolumny\n",
"wynik1 = macierz + wektor\n",
"# Przemnożenie kolumn przez inne wartości\n",
"współczynniki = np.array([1, 2, 3])\n",
"wynik2 = macierz * współczynniki\n",
"print(\"Dodanie:\", wynik1, sep=\"\\n\")\n",
"print(\"Mnożenie:\", wynik2, sep=\"\\n\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4a54d6b7",
"metadata": {},
"outputs": [],
"source": [
"# Tutaj wpisz swoje rozwiązanie\n"
]
},
{
"cell_type": "markdown",
"id": "1823dd52",
"metadata": {},
"source": [
"## ✅ Podsumowanie dnia 1\n",
"Znasz już:\n",
"- podstawy Conda, pip i środowisk\n",
"- jak korzystać z Jupyter Notebook\n",
"- jak tworzyć i przekształcać dane w NumPy\n",
"\n",
"W kolejnym dniu przejdziemy do Pandas i pobierania danych."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View file

@ -27,6 +27,36 @@ Alternatywy: Google Collab, VSCode z rozszerzeniami Python i Jupyter
- nie będziemy korzystać bezpośrednio - bo większość szerszych frameworków korzysta z NumPy pod spodem, np Pandas - 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