├── README.md
├── DATA.csv
├── DATA.xlsx
├── home.xlsx
├── supershop.csv
├── For Loop - List & Array.ipynb
├── SAVE Data Frame to CSV.ipynb
├── Class 02.ipynb
├── Class - 04 - Linear Regression.ipynb
├── LSTM_.ipynb
└── Class 03.ipynb
/README.md:
--------------------------------------------------------------------------------
1 | # Data-Science-Private
--------------------------------------------------------------------------------
/DATA.csv:
--------------------------------------------------------------------------------
1 | NAME,AGE
2 | ABC,20
3 | CDF,35
4 |
--------------------------------------------------------------------------------
/DATA.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashakil-ds/Data-Science-P/main/DATA.xlsx
--------------------------------------------------------------------------------
/home.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashakil-ds/Data-Science-P/main/home.xlsx
--------------------------------------------------------------------------------
/supershop.csv:
--------------------------------------------------------------------------------
1 | Marketing Spend,Administration,Transport,Area,Profit
2 | 114523.61,136897.8,471784.1,Dhaka,192261.83
3 | 162597.7,151377.59,443898.53,Ctg,191792.06
4 | 153441.51,101145.55,407934.54,Rangpur,191050.39
5 | 144372.41,118671.85,383199.62,Dhaka,182901.99
6 | 142107.34,91391.77,366168.42,Rangpur,166187.94
7 | 131876.9,99814.71,362861.36,Dhaka,156991.12
8 | 134615.46,147198.87,127716.82,Ctg,156122.51
9 | 130298.13,145530.06,323876.68,Rangpur,155752.6
10 | 120542.52,148718.95,311613.29,Dhaka,152211.77
11 | 123334.88,108679.17,304981.62,Ctg,149759.96
12 | 101913.08,110594.11,229160.95,Rangpur,146121.95
13 | 100671.96,91790.61,249744.55,Ctg,144259.4
14 | 93863.75,127320.38,249839.44,Rangpur,141585.52
15 | 91992.39,135495.07,252664.93,Ctg,134307.35
16 | 119943.24,156547.42,256512.92,Rangpur,132602.65
17 | 165349.2,122616.84,261776.23,Dhaka,129917.04
18 | 78013.11,121597.55,264346.06,Ctg,126992.93
19 | 94657.16,145077.58,282574.31,Dhaka,125370.37
20 | 91749.16,114175.79,294919.57,Rangpur,124266.9
21 | 86419.7,153514.11,,Dhaka,122776.86
22 | 76253.86,113867.3,298664.47,Ctg,118474.03
23 | 78389.47,153773.43,299737.29,Dhaka,111313.02
24 | 73994.56,122782.75,303319.26,Rangpur,110352.25
25 | 67532.53,105751.03,304768.73,Rangpur,108733.99
26 | 77044.01,99281.34,140574.81,Dhaka,108552.04
27 | 64664.71,139553.16,137962.62,Ctg,107404.34
28 | 75328.87,144135.98,134050.07,Rangpur,105733.54
29 | 72107.6,127864.55,353183.81,Dhaka,105008.31
30 | 66051.52,182645.56,118148.2,Rangpur,103282.38
31 | 65605.48,153032.06,107138.38,Dhaka,101004.64
32 | 61994.48,115641.28,91131.24,Rangpur,99937.59
33 | 61136.38,152701.92,88218.23,Dhaka,97483.56
34 | 63408.86,129219.61,46085.25,Ctg,97427.84
35 | 55493.95,103057.49,214634.81,Rangpur,96778.92
36 | 46426.07,157693.92,210797.67,Ctg,96712.8
37 | 46014.02,85047.44,205517.64,Dhaka,96479.51
38 | 28663.76,127056.21,201126.82,Rangpur,90708.19
39 | 44069.95,51283.14,197029.42,Ctg,89949.14
40 | 20229.59,65947.93,185265.1,Dhaka,81229.06
41 | 38558.51,82982.09,174999.3,Ctg,81005.76
42 | 28754.33,118546.05,172795.67,Ctg,78239.91
43 | 27892.92,84710.77,164470.71,Rangpur,77798.83
44 | 23640.93,96189.63,148001.11,Ctg,71498.49
45 | 15505.73,127382.3,35534.17,Dhaka,69758.98
46 | 22177.74,154806.14,28334.72,Ctg,65200.33
47 | 1000.23,124153.04,1903.93,Dhaka,64926.08
48 | 1315.46,115816.21,297114.46,Rangpur,49490.75
49 | 0,135426.92,0,Ctg,42559.73
50 | 542.05,51743.15,0,Dhaka,35673.41
51 | 0,116983.8,45173.06,Ctg,14681.4
52 |
--------------------------------------------------------------------------------
/For Loop - List & Array.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "id": "191b0a05",
7 | "metadata": {},
8 | "outputs": [
9 | {
10 | "name": "stdout",
11 | "output_type": "stream",
12 | "text": [
13 | "1\n"
14 | ]
15 | }
16 | ],
17 | "source": [
18 | "list1 = [1,3,7,'data'] #List\n",
19 | "for i in range(len(list1)):\n",
20 | " if(list1[i]) == 1:\n",
21 | " print(list1[i])"
22 | ]
23 | },
24 | {
25 | "cell_type": "code",
26 | "execution_count": 2,
27 | "id": "5f1bcc82",
28 | "metadata": {},
29 | "outputs": [
30 | {
31 | "name": "stdout",
32 | "output_type": "stream",
33 | "text": [
34 | "Enter Number of Element: 2\n",
35 | "1\n",
36 | "6\n",
37 | "[1, 6]\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "l1 = [] # Input List\n",
43 | "n = int(input('Enter Number of Element: '))\n",
44 | "for i in range(n):\n",
45 | " new_val = int(input())\n",
46 | " l1.append(new_val)\n",
47 | "print(l1)"
48 | ]
49 | },
50 | {
51 | "cell_type": "code",
52 | "execution_count": 3,
53 | "id": "e48e7660",
54 | "metadata": {},
55 | "outputs": [
56 | {
57 | "name": "stdout",
58 | "output_type": "stream",
59 | "text": [
60 | "Enter Number of Element: 6\n",
61 | "1\n",
62 | "2\n",
63 | "5\n",
64 | "7\n",
65 | "8\n",
66 | "9\n",
67 | "array('i', [1, 2, 5, 7, 8, 9])\n"
68 | ]
69 | }
70 | ],
71 | "source": [
72 | "import array as ar\n",
73 | "n2 = ar.array('i',[]) # Input Array\n",
74 | "items = int(input('Enter Number of Element: '))\n",
75 | "for x in range(items):\n",
76 | " new2 = int(input())\n",
77 | " n2.append(new2)\n",
78 | "print(n2)"
79 | ]
80 | },
81 | {
82 | "cell_type": "code",
83 | "execution_count": 1,
84 | "id": "16fbc1d2",
85 | "metadata": {},
86 | "outputs": [
87 | {
88 | "name": "stdout",
89 | "output_type": "stream",
90 | "text": [
91 | "enter a n value:3\n",
92 | "1\n",
93 | "2\n",
94 | "3\n",
95 | "3\n",
96 | "4\n",
97 | "5\n",
98 | "{'1': 2, '3': 3, '4': 5}\n"
99 | ]
100 | }
101 | ],
102 | "source": [
103 | "n = int(input(\"enter a n value:\"))\n",
104 | "d = {}\n",
105 | "for i in range(n):\n",
106 | " keys = input() # here i have taken keys as strings\n",
107 | " values = int(input()) # here i have taken values as integers\n",
108 | " d[keys] = values\n",
109 | "print(d)"
110 | ]
111 | },
112 | {
113 | "cell_type": "code",
114 | "execution_count": 2,
115 | "id": "28103c05",
116 | "metadata": {},
117 | "outputs": [
118 | {
119 | "data": {
120 | "text/plain": [
121 | "dict"
122 | ]
123 | },
124 | "execution_count": 2,
125 | "metadata": {},
126 | "output_type": "execute_result"
127 | }
128 | ],
129 | "source": [
130 | "type(d)"
131 | ]
132 | },
133 | {
134 | "cell_type": "code",
135 | "execution_count": null,
136 | "id": "2107dbd6",
137 | "metadata": {},
138 | "outputs": [],
139 | "source": []
140 | }
141 | ],
142 | "metadata": {
143 | "kernelspec": {
144 | "display_name": "Python 3",
145 | "language": "python",
146 | "name": "python3"
147 | },
148 | "language_info": {
149 | "codemirror_mode": {
150 | "name": "ipython",
151 | "version": 3
152 | },
153 | "file_extension": ".py",
154 | "mimetype": "text/x-python",
155 | "name": "python",
156 | "nbconvert_exporter": "python",
157 | "pygments_lexer": "ipython3",
158 | "version": "3.8.8"
159 | }
160 | },
161 | "nbformat": 4,
162 | "nbformat_minor": 5
163 | }
164 |
--------------------------------------------------------------------------------
/SAVE Data Frame to CSV.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "id": "ed51a552",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "import pandas as pd\n",
11 | "import numpy as np"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "id": "c9202953",
18 | "metadata": {},
19 | "outputs": [
20 | {
21 | "data": {
22 | "text/html": [
23 | "
\n",
24 | "\n",
37 | "
\n",
38 | " \n",
39 | " \n",
40 | " | \n",
41 | " text | \n",
42 | " spam | \n",
43 | "
\n",
44 | " \n",
45 | " \n",
46 | " \n",
47 | " | 0 | \n",
48 | " Subject: naturally irresistible your corporate... | \n",
49 | " 1 | \n",
50 | "
\n",
51 | " \n",
52 | " | 1 | \n",
53 | " Subject: the stock trading gunslinger fanny i... | \n",
54 | " 1 | \n",
55 | "
\n",
56 | " \n",
57 | " | 2 | \n",
58 | " Subject: unbelievable new homes made easy im ... | \n",
59 | " 1 | \n",
60 | "
\n",
61 | " \n",
62 | " | 3 | \n",
63 | " Subject: 4 color printing special request add... | \n",
64 | " 1 | \n",
65 | "
\n",
66 | " \n",
67 | " | 4 | \n",
68 | " Subject: do not have money , get software cds ... | \n",
69 | " 1 | \n",
70 | "
\n",
71 | " \n",
72 | "
\n",
73 | "
"
74 | ],
75 | "text/plain": [
76 | " text spam\n",
77 | "0 Subject: naturally irresistible your corporate... 1\n",
78 | "1 Subject: the stock trading gunslinger fanny i... 1\n",
79 | "2 Subject: unbelievable new homes made easy im ... 1\n",
80 | "3 Subject: 4 color printing special request add... 1\n",
81 | "4 Subject: do not have money , get software cds ... 1"
82 | ]
83 | },
84 | "execution_count": 2,
85 | "metadata": {},
86 | "output_type": "execute_result"
87 | }
88 | ],
89 | "source": [
90 | "df = pd.read_csv('emails.csv')\n",
91 | "df.head()"
92 | ]
93 | },
94 | {
95 | "cell_type": "code",
96 | "execution_count": 3,
97 | "id": "09719de3",
98 | "metadata": {},
99 | "outputs": [
100 | {
101 | "data": {
102 | "text/plain": [
103 | "(5728, 2)"
104 | ]
105 | },
106 | "execution_count": 3,
107 | "metadata": {},
108 | "output_type": "execute_result"
109 | }
110 | ],
111 | "source": [
112 | "df.shape"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 4,
118 | "id": "797803a3",
119 | "metadata": {},
120 | "outputs": [],
121 | "source": [
122 | "df.drop_duplicates(inplace=True) #droped simmilar rows"
123 | ]
124 | },
125 | {
126 | "cell_type": "code",
127 | "execution_count": 5,
128 | "id": "934d333b",
129 | "metadata": {},
130 | "outputs": [],
131 | "source": [
132 | "df.to_csv('New Data.csv')"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 6,
138 | "id": "988f033a",
139 | "metadata": {},
140 | "outputs": [
141 | {
142 | "data": {
143 | "text/plain": [
144 | "(5695, 2)"
145 | ]
146 | },
147 | "execution_count": 6,
148 | "metadata": {},
149 | "output_type": "execute_result"
150 | }
151 | ],
152 | "source": [
153 | "df.shape"
154 | ]
155 | },
156 | {
157 | "cell_type": "code",
158 | "execution_count": null,
159 | "id": "c6d31d53",
160 | "metadata": {},
161 | "outputs": [],
162 | "source": []
163 | }
164 | ],
165 | "metadata": {
166 | "kernelspec": {
167 | "display_name": "Python 3",
168 | "language": "python",
169 | "name": "python3"
170 | },
171 | "language_info": {
172 | "codemirror_mode": {
173 | "name": "ipython",
174 | "version": 3
175 | },
176 | "file_extension": ".py",
177 | "mimetype": "text/x-python",
178 | "name": "python",
179 | "nbconvert_exporter": "python",
180 | "pygments_lexer": "ipython3",
181 | "version": "3.8.8"
182 | }
183 | },
184 | "nbformat": 4,
185 | "nbformat_minor": 5
186 | }
187 |
--------------------------------------------------------------------------------
/Class 02.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 26,
6 | "id": "07039f52",
7 | "metadata": {},
8 | "outputs": [
9 | {
10 | "name": "stdout",
11 | "output_type": "stream",
12 | "text": [
13 | "datascience abc1"
14 | ]
15 | }
16 | ],
17 | "source": [
18 | "#To show documents -> shift+tab\n",
19 | "print('datascience','abc', end='1')"
20 | ]
21 | },
22 | {
23 | "cell_type": "code",
24 | "execution_count": 24,
25 | "id": "dcf15da9",
26 | "metadata": {},
27 | "outputs": [],
28 | "source": [
29 | "import time\n",
30 | "\n",
31 | "def count_items(items):\n",
32 | " print('Counting ', end='', flush=True)\n",
33 | " num = 0\n",
34 | " for item in items:\n",
35 | " num += 1\n",
36 | " time.sleep(1)\n",
37 | " print('.', end='', flush=True)\n",
38 | "\n",
39 | " print(f'\\nThere were {num} items')"
40 | ]
41 | },
42 | {
43 | "cell_type": "markdown",
44 | "id": "3862c0c5",
45 | "metadata": {},
46 | "source": [
47 | "# 'Hello World'"
48 | ]
49 | },
50 | {
51 | "cell_type": "markdown",
52 | "id": "cd86d808",
53 | "metadata": {},
54 | "source": [
55 | "Hello"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": 3,
61 | "id": "970ddc7d",
62 | "metadata": {},
63 | "outputs": [],
64 | "source": [
65 | "x = 10"
66 | ]
67 | },
68 | {
69 | "cell_type": "code",
70 | "execution_count": 5,
71 | "id": "3fd5638f",
72 | "metadata": {},
73 | "outputs": [],
74 | "source": [
75 | "y = 10 #shift + enter"
76 | ]
77 | },
78 | {
79 | "cell_type": "code",
80 | "execution_count": 6,
81 | "id": "659385aa",
82 | "metadata": {},
83 | "outputs": [
84 | {
85 | "name": "stdout",
86 | "output_type": "stream",
87 | "text": [
88 | "10\n"
89 | ]
90 | }
91 | ],
92 | "source": [
93 | "print(y)"
94 | ]
95 | },
96 | {
97 | "cell_type": "code",
98 | "execution_count": 7,
99 | "id": "7f9187c8",
100 | "metadata": {},
101 | "outputs": [
102 | {
103 | "data": {
104 | "text/plain": [
105 | "10"
106 | ]
107 | },
108 | "execution_count": 7,
109 | "metadata": {},
110 | "output_type": "execute_result"
111 | }
112 | ],
113 | "source": [
114 | "y"
115 | ]
116 | },
117 | {
118 | "cell_type": "code",
119 | "execution_count": 8,
120 | "id": "3f4340db",
121 | "metadata": {},
122 | "outputs": [
123 | {
124 | "data": {
125 | "text/plain": [
126 | "'Study Mart'"
127 | ]
128 | },
129 | "execution_count": 8,
130 | "metadata": {},
131 | "output_type": "execute_result"
132 | }
133 | ],
134 | "source": [
135 | "_9name = 'Study Mart'\n",
136 | "_9name"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 9,
142 | "id": "31c6972e",
143 | "metadata": {},
144 | "outputs": [
145 | {
146 | "data": {
147 | "text/plain": [
148 | "140729755969616"
149 | ]
150 | },
151 | "execution_count": 9,
152 | "metadata": {},
153 | "output_type": "execute_result"
154 | }
155 | ],
156 | "source": [
157 | "X = 10\n",
158 | "Y = 10\n",
159 | "id(x)"
160 | ]
161 | },
162 | {
163 | "cell_type": "code",
164 | "execution_count": 10,
165 | "id": "66f16e8f",
166 | "metadata": {},
167 | "outputs": [
168 | {
169 | "data": {
170 | "text/plain": [
171 | "140729755969936"
172 | ]
173 | },
174 | "execution_count": 10,
175 | "metadata": {},
176 | "output_type": "execute_result"
177 | }
178 | ],
179 | "source": [
180 | "z = 20\n",
181 | "id(z)"
182 | ]
183 | },
184 | {
185 | "cell_type": "code",
186 | "execution_count": 11,
187 | "id": "a3bcc6e3",
188 | "metadata": {},
189 | "outputs": [
190 | {
191 | "data": {
192 | "text/plain": [
193 | "20"
194 | ]
195 | },
196 | "execution_count": 11,
197 | "metadata": {},
198 | "output_type": "execute_result"
199 | }
200 | ],
201 | "source": [
202 | "z"
203 | ]
204 | },
205 | {
206 | "cell_type": "code",
207 | "execution_count": 12,
208 | "id": "7461f393",
209 | "metadata": {},
210 | "outputs": [
211 | {
212 | "data": {
213 | "text/plain": [
214 | "140729755969616"
215 | ]
216 | },
217 | "execution_count": 12,
218 | "metadata": {},
219 | "output_type": "execute_result"
220 | }
221 | ],
222 | "source": [
223 | "id(y)"
224 | ]
225 | },
226 | {
227 | "cell_type": "code",
228 | "execution_count": 13,
229 | "id": "6c832101",
230 | "metadata": {},
231 | "outputs": [
232 | {
233 | "data": {
234 | "text/plain": [
235 | "140729755969936"
236 | ]
237 | },
238 | "execution_count": 13,
239 | "metadata": {},
240 | "output_type": "execute_result"
241 | }
242 | ],
243 | "source": [
244 | "140729755969616\n",
245 | "140729755969616\n",
246 | "\n",
247 | "140729755969936"
248 | ]
249 | },
250 | {
251 | "cell_type": "code",
252 | "execution_count": 14,
253 | "id": "89d25c49",
254 | "metadata": {
255 | "scrolled": false
256 | },
257 | "outputs": [
258 | {
259 | "data": {
260 | "text/plain": [
261 | "30"
262 | ]
263 | },
264 | "execution_count": 14,
265 | "metadata": {},
266 | "output_type": "execute_result"
267 | }
268 | ],
269 | "source": [
270 | "z = 30\n",
271 | "z"
272 | ]
273 | },
274 | {
275 | "cell_type": "code",
276 | "execution_count": null,
277 | "id": "f2b840d5",
278 | "metadata": {},
279 | "outputs": [],
280 | "source": [
281 | "x,y,z = 20,30,50\n",
282 | "z"
283 | ]
284 | },
285 | {
286 | "cell_type": "code",
287 | "execution_count": 16,
288 | "id": "4b8b8b86",
289 | "metadata": {},
290 | "outputs": [
291 | {
292 | "data": {
293 | "text/plain": [
294 | "30"
295 | ]
296 | },
297 | "execution_count": 16,
298 | "metadata": {},
299 | "output_type": "execute_result"
300 | }
301 | ],
302 | "source": [
303 | "y"
304 | ]
305 | },
306 | {
307 | "cell_type": "code",
308 | "execution_count": 24,
309 | "id": "f07ee375",
310 | "metadata": {},
311 | "outputs": [],
312 | "source": [
313 | "x,y,z = 20,30,50"
314 | ]
315 | },
316 | {
317 | "cell_type": "markdown",
318 | "id": "f0233627",
319 | "metadata": {},
320 | "source": [
321 | "# Comments"
322 | ]
323 | },
324 | {
325 | "cell_type": "code",
326 | "execution_count": 25,
327 | "id": "1e5ba19a",
328 | "metadata": {},
329 | "outputs": [],
330 | "source": [
331 | "x = 25 # x is age"
332 | ]
333 | },
334 | {
335 | "cell_type": "code",
336 | "execution_count": 26,
337 | "id": "ea8f8202",
338 | "metadata": {},
339 | "outputs": [
340 | {
341 | "data": {
342 | "text/plain": [
343 | "25"
344 | ]
345 | },
346 | "execution_count": 26,
347 | "metadata": {},
348 | "output_type": "execute_result"
349 | }
350 | ],
351 | "source": [
352 | "x"
353 | ]
354 | },
355 | {
356 | "cell_type": "code",
357 | "execution_count": 29,
358 | "id": "489d1ebd",
359 | "metadata": {},
360 | "outputs": [
361 | {
362 | "data": {
363 | "text/plain": [
364 | "'comment'"
365 | ]
366 | },
367 | "execution_count": 29,
368 | "metadata": {},
369 | "output_type": "execute_result"
370 | }
371 | ],
372 | "source": [
373 | "'''100000'''"
374 | ]
375 | },
376 | {
377 | "cell_type": "code",
378 | "execution_count": 31,
379 | "id": "8cb99340",
380 | "metadata": {},
381 | "outputs": [
382 | {
383 | "data": {
384 | "text/plain": [
385 | "str"
386 | ]
387 | },
388 | "execution_count": 31,
389 | "metadata": {},
390 | "output_type": "execute_result"
391 | }
392 | ],
393 | "source": [
394 | "type('''10000''')"
395 | ]
396 | },
397 | {
398 | "cell_type": "code",
399 | "execution_count": 32,
400 | "id": "4288cd2e",
401 | "metadata": {},
402 | "outputs": [
403 | {
404 | "data": {
405 | "text/plain": [
406 | "'100'"
407 | ]
408 | },
409 | "execution_count": 32,
410 | "metadata": {},
411 | "output_type": "execute_result"
412 | }
413 | ],
414 | "source": [
415 | "'100'"
416 | ]
417 | },
418 | {
419 | "cell_type": "code",
420 | "execution_count": 33,
421 | "id": "081aeb7c",
422 | "metadata": {},
423 | "outputs": [
424 | {
425 | "data": {
426 | "text/plain": [
427 | "'10000'"
428 | ]
429 | },
430 | "execution_count": 33,
431 | "metadata": {},
432 | "output_type": "execute_result"
433 | }
434 | ],
435 | "source": [
436 | "\"10000\""
437 | ]
438 | },
439 | {
440 | "cell_type": "code",
441 | "execution_count": 35,
442 | "id": "e50443df",
443 | "metadata": {},
444 | "outputs": [
445 | {
446 | "data": {
447 | "text/plain": [
448 | "'\\n300000\\n'"
449 | ]
450 | },
451 | "execution_count": 35,
452 | "metadata": {},
453 | "output_type": "execute_result"
454 | }
455 | ],
456 | "source": [
457 | "'''300000'''"
458 | ]
459 | },
460 | {
461 | "cell_type": "code",
462 | "execution_count": 38,
463 | "id": "8c837f58",
464 | "metadata": {},
465 | "outputs": [
466 | {
467 | "data": {
468 | "text/plain": [
469 | "str"
470 | ]
471 | },
472 | "execution_count": 38,
473 | "metadata": {},
474 | "output_type": "execute_result"
475 | }
476 | ],
477 | "source": [
478 | "name = \"Sayed Vaia\" #student name\n",
479 | "type(name)"
480 | ]
481 | },
482 | {
483 | "cell_type": "code",
484 | "execution_count": 39,
485 | "id": "e27712a8",
486 | "metadata": {},
487 | "outputs": [],
488 | "source": [
489 | "age = 20"
490 | ]
491 | },
492 | {
493 | "cell_type": "code",
494 | "execution_count": 41,
495 | "id": "cc153ecd",
496 | "metadata": {},
497 | "outputs": [
498 | {
499 | "data": {
500 | "text/plain": [
501 | "500"
502 | ]
503 | },
504 | "execution_count": 41,
505 | "metadata": {},
506 | "output_type": "execute_result"
507 | }
508 | ],
509 | "source": [
510 | "age*x"
511 | ]
512 | },
513 | {
514 | "cell_type": "code",
515 | "execution_count": 43,
516 | "id": "79f529aa",
517 | "metadata": {},
518 | "outputs": [
519 | {
520 | "data": {
521 | "text/plain": [
522 | "list"
523 | ]
524 | },
525 | "execution_count": 43,
526 | "metadata": {},
527 | "output_type": "execute_result"
528 | }
529 | ],
530 | "source": [
531 | "'''\n",
532 | "camelCase\n",
533 | "PascalCase\n",
534 | "sanke_case\n",
535 | "'''\n",
536 | "\n",
537 | "student_name = ['sayed','robi'] #snake case\n",
538 | "student_name\n",
539 | "type(student_name)\n",
540 | "\n",
541 | "\n",
542 | "\n"
543 | ]
544 | },
545 | {
546 | "cell_type": "markdown",
547 | "id": "5286113b",
548 | "metadata": {},
549 | "source": [
550 | "# String Formating"
551 | ]
552 | },
553 | {
554 | "cell_type": "code",
555 | "execution_count": 23,
556 | "id": "d3e4b89b",
557 | "metadata": {},
558 | "outputs": [
559 | {
560 | "name": "stdout",
561 | "output_type": "stream",
562 | "text": [
563 | "I HAVE 10 ok\n"
564 | ]
565 | }
566 | ],
567 | "source": [
568 | "x = 10\n",
569 | "print('I HAVE '+str(x)+' ok')"
570 | ]
571 | },
572 | {
573 | "cell_type": "code",
574 | "execution_count": 48,
575 | "id": "ded57586",
576 | "metadata": {},
577 | "outputs": [
578 | {
579 | "name": "stdout",
580 | "output_type": "stream",
581 | "text": [
582 | "I HAVE 3.0 taka\n"
583 | ]
584 | }
585 | ],
586 | "source": [
587 | "x = 10\n",
588 | "y = 30\n",
589 | "z=y/x\n",
590 | "\n",
591 | "print('I HAVE {} taka'.format(z))"
592 | ]
593 | },
594 | {
595 | "cell_type": "markdown",
596 | "id": "e21882e8",
597 | "metadata": {},
598 | "source": [
599 | "# Global vs Local"
600 | ]
601 | },
602 | {
603 | "cell_type": "code",
604 | "execution_count": 57,
605 | "id": "fa068766",
606 | "metadata": {},
607 | "outputs": [
608 | {
609 | "name": "stdout",
610 | "output_type": "stream",
611 | "text": [
612 | "ai\n",
613 | "data sciece\n"
614 | ]
615 | }
616 | ],
617 | "source": [
618 | "#x = 'data sciece' #global\n",
619 | "def myfunction():\n",
620 | " #code\n",
621 | " x = 'ai' # local\n",
622 | " print(x)\n",
623 | "myfunction()\n",
624 | "\n",
625 | "def myfunction2():\n",
626 | " print(x)\n",
627 | "myfunction2()"
628 | ]
629 | },
630 | {
631 | "cell_type": "code",
632 | "execution_count": 58,
633 | "id": "92abc4a0",
634 | "metadata": {},
635 | "outputs": [
636 | {
637 | "name": "stdout",
638 | "output_type": "stream",
639 | "text": [
640 | "ai\n",
641 | "data sciece\n"
642 | ]
643 | }
644 | ],
645 | "source": [
646 | "#x = 'data sciece' #global\n",
647 | "def myfunction():\n",
648 | " #code\n",
649 | " x = 'ai' # local\n",
650 | " print(x)\n",
651 | "myfunction()\n",
652 | "\n",
653 | "def myfunction2():\n",
654 | " print(x)\n",
655 | "myfunction2()"
656 | ]
657 | },
658 | {
659 | "cell_type": "markdown",
660 | "id": "d9a4d6c3",
661 | "metadata": {},
662 | "source": [
663 | "# string concat"
664 | ]
665 | },
666 | {
667 | "cell_type": "code",
668 | "execution_count": 60,
669 | "id": "4d67bcbc",
670 | "metadata": {},
671 | "outputs": [],
672 | "source": [
673 | "s1 = 'Full Name : '\n",
674 | "s2 = 'Faisal Ahmed'"
675 | ]
676 | },
677 | {
678 | "cell_type": "code",
679 | "execution_count": 61,
680 | "id": "0cdc8046",
681 | "metadata": {},
682 | "outputs": [
683 | {
684 | "data": {
685 | "text/plain": [
686 | "'Full Name : Faisal Ahmed'"
687 | ]
688 | },
689 | "execution_count": 61,
690 | "metadata": {},
691 | "output_type": "execute_result"
692 | }
693 | ],
694 | "source": [
695 | "s1+s2 #string concat"
696 | ]
697 | },
698 | {
699 | "cell_type": "markdown",
700 | "id": "15ac03a1",
701 | "metadata": {},
702 | "source": [
703 | "# Input Functon"
704 | ]
705 | },
706 | {
707 | "cell_type": "code",
708 | "execution_count": 62,
709 | "id": "458968f4",
710 | "metadata": {},
711 | "outputs": [
712 | {
713 | "name": "stdout",
714 | "output_type": "stream",
715 | "text": [
716 | "5\n",
717 | "3\n"
718 | ]
719 | },
720 | {
721 | "data": {
722 | "text/plain": [
723 | "'53'"
724 | ]
725 | },
726 | "execution_count": 62,
727 | "metadata": {},
728 | "output_type": "execute_result"
729 | }
730 | ],
731 | "source": [
732 | "x = input()\n",
733 | "y = input()\n",
734 | "z = x+y\n",
735 | "z"
736 | ]
737 | },
738 | {
739 | "cell_type": "code",
740 | "execution_count": 63,
741 | "id": "a9eeb759",
742 | "metadata": {},
743 | "outputs": [
744 | {
745 | "data": {
746 | "text/plain": [
747 | "str"
748 | ]
749 | },
750 | "execution_count": 63,
751 | "metadata": {},
752 | "output_type": "execute_result"
753 | }
754 | ],
755 | "source": [
756 | "type(z)"
757 | ]
758 | },
759 | {
760 | "cell_type": "code",
761 | "execution_count": 68,
762 | "id": "e517e010",
763 | "metadata": {},
764 | "outputs": [
765 | {
766 | "name": "stdout",
767 | "output_type": "stream",
768 | "text": [
769 | "Enter your first num: 5\n",
770 | "Enter your 2nd num: 5\n"
771 | ]
772 | },
773 | {
774 | "data": {
775 | "text/plain": [
776 | "10.0"
777 | ]
778 | },
779 | "execution_count": 68,
780 | "metadata": {},
781 | "output_type": "execute_result"
782 | }
783 | ],
784 | "source": [
785 | "x = int(input('Enter your first num: '))\n",
786 | "y = float(input('Enter your 2nd num: '))\n",
787 | "z = x+y\n",
788 | "z"
789 | ]
790 | },
791 | {
792 | "cell_type": "markdown",
793 | "id": "ef5774b4",
794 | "metadata": {},
795 | "source": [
796 | "# Condition: if, elif, else"
797 | ]
798 | },
799 | {
800 | "cell_type": "code",
801 | "execution_count": 72,
802 | "id": "d93956e1",
803 | "metadata": {},
804 | "outputs": [
805 | {
806 | "name": "stdout",
807 | "output_type": "stream",
808 | "text": [
809 | "100\n"
810 | ]
811 | }
812 | ],
813 | "source": [
814 | "x = 100\n",
815 | "\n",
816 | "if x>105:\n",
817 | " print(x)\n",
818 | "\n",
819 | "elif(x>50): # else if\n",
820 | " print(x)\n",
821 | " \n",
822 | "else:\n",
823 | " print('Stop')"
824 | ]
825 | },
826 | {
827 | "cell_type": "markdown",
828 | "id": "33c689a0",
829 | "metadata": {},
830 | "source": [
831 | "# for loop"
832 | ]
833 | },
834 | {
835 | "cell_type": "code",
836 | "execution_count": 87,
837 | "id": "f29c7571",
838 | "metadata": {},
839 | "outputs": [
840 | {
841 | "name": "stdout",
842 | "output_type": "stream",
843 | "text": [
844 | "1\n",
845 | "6\n"
846 | ]
847 | }
848 | ],
849 | "source": [
850 | "for x in range(1,10,5): #n-1\n",
851 | " print(x)"
852 | ]
853 | },
854 | {
855 | "cell_type": "code",
856 | "execution_count": 90,
857 | "id": "539056c5",
858 | "metadata": {},
859 | "outputs": [
860 | {
861 | "name": "stdout",
862 | "output_type": "stream",
863 | "text": [
864 | "1\n",
865 | "11\n",
866 | "21\n",
867 | "31\n",
868 | "41\n",
869 | "51\n",
870 | "61\n",
871 | "71\n",
872 | "81\n",
873 | "91\n"
874 | ]
875 | }
876 | ],
877 | "source": [
878 | "i = 1\n",
879 | "while i<100:\n",
880 | " print(i)\n",
881 | " i = i+10"
882 | ]
883 | },
884 | {
885 | "cell_type": "markdown",
886 | "id": "8268b15f",
887 | "metadata": {},
888 | "source": [
889 | "# Data Structure: List"
890 | ]
891 | },
892 | {
893 | "cell_type": "code",
894 | "execution_count": 91,
895 | "id": "953eb104",
896 | "metadata": {},
897 | "outputs": [
898 | {
899 | "data": {
900 | "text/plain": [
901 | "[1, 2, 3, 4, 5, 6]"
902 | ]
903 | },
904 | "execution_count": 91,
905 | "metadata": {},
906 | "output_type": "execute_result"
907 | }
908 | ],
909 | "source": [
910 | "l1 = [1,2,3,4,5,6] #list\n",
911 | "l1"
912 | ]
913 | },
914 | {
915 | "cell_type": "code",
916 | "execution_count": 92,
917 | "id": "74364256",
918 | "metadata": {},
919 | "outputs": [
920 | {
921 | "data": {
922 | "text/plain": [
923 | "list"
924 | ]
925 | },
926 | "execution_count": 92,
927 | "metadata": {},
928 | "output_type": "execute_result"
929 | }
930 | ],
931 | "source": [
932 | "type(l1)"
933 | ]
934 | },
935 | {
936 | "cell_type": "code",
937 | "execution_count": 94,
938 | "id": "0b3f63ac",
939 | "metadata": {},
940 | "outputs": [
941 | {
942 | "data": {
943 | "text/plain": [
944 | "104"
945 | ]
946 | },
947 | "execution_count": 94,
948 | "metadata": {},
949 | "output_type": "execute_result"
950 | }
951 | ],
952 | "source": [
953 | "import sys\n",
954 | "sys.getsizeof(l1)"
955 | ]
956 | },
957 | {
958 | "cell_type": "code",
959 | "execution_count": 99,
960 | "id": "34e9f60e",
961 | "metadata": {},
962 | "outputs": [
963 | {
964 | "data": {
965 | "text/plain": [
966 | "28"
967 | ]
968 | },
969 | "execution_count": 99,
970 | "metadata": {},
971 | "output_type": "execute_result"
972 | }
973 | ],
974 | "source": [
975 | "x = 1000000000\n",
976 | "sys.getsizeof(x)"
977 | ]
978 | },
979 | {
980 | "cell_type": "code",
981 | "execution_count": 100,
982 | "id": "bb64c1d5",
983 | "metadata": {},
984 | "outputs": [
985 | {
986 | "data": {
987 | "text/plain": [
988 | "[1, 2, 3, 4, 5, 6, 'data', True, False, [1, 2, 3], (10, 20)]"
989 | ]
990 | },
991 | "execution_count": 100,
992 | "metadata": {},
993 | "output_type": "execute_result"
994 | }
995 | ],
996 | "source": [
997 | "l1 = [1,2,3,4,5,6,'data',True,False,[1,2,3],(10,20)] #list\n",
998 | "l1"
999 | ]
1000 | },
1001 | {
1002 | "cell_type": "code",
1003 | "execution_count": 101,
1004 | "id": "c070c54b",
1005 | "metadata": {},
1006 | "outputs": [
1007 | {
1008 | "data": {
1009 | "text/plain": [
1010 | "'data'"
1011 | ]
1012 | },
1013 | "execution_count": 101,
1014 | "metadata": {},
1015 | "output_type": "execute_result"
1016 | }
1017 | ],
1018 | "source": [
1019 | "l1[6]"
1020 | ]
1021 | },
1022 | {
1023 | "cell_type": "code",
1024 | "execution_count": 107,
1025 | "id": "d5a01b1f",
1026 | "metadata": {},
1027 | "outputs": [
1028 | {
1029 | "data": {
1030 | "text/plain": [
1031 | "1"
1032 | ]
1033 | },
1034 | "execution_count": 107,
1035 | "metadata": {},
1036 | "output_type": "execute_result"
1037 | }
1038 | ],
1039 | "source": [
1040 | "l1[9][0]"
1041 | ]
1042 | },
1043 | {
1044 | "cell_type": "code",
1045 | "execution_count": 105,
1046 | "id": "2f06f03b",
1047 | "metadata": {},
1048 | "outputs": [
1049 | {
1050 | "data": {
1051 | "text/plain": [
1052 | "[1, 2, 3, 4]"
1053 | ]
1054 | },
1055 | "execution_count": 105,
1056 | "metadata": {},
1057 | "output_type": "execute_result"
1058 | }
1059 | ],
1060 | "source": [
1061 | "l1[0:4]"
1062 | ]
1063 | },
1064 | {
1065 | "cell_type": "code",
1066 | "execution_count": 109,
1067 | "id": "ece902d5",
1068 | "metadata": {},
1069 | "outputs": [
1070 | {
1071 | "data": {
1072 | "text/plain": [
1073 | "'data'"
1074 | ]
1075 | },
1076 | "execution_count": 109,
1077 | "metadata": {},
1078 | "output_type": "execute_result"
1079 | }
1080 | ],
1081 | "source": [
1082 | "l1[-5]"
1083 | ]
1084 | },
1085 | {
1086 | "cell_type": "code",
1087 | "execution_count": 110,
1088 | "id": "4dee2f9f",
1089 | "metadata": {},
1090 | "outputs": [
1091 | {
1092 | "data": {
1093 | "text/plain": [
1094 | "[1, 2, 3, 3, 4, 4, 5, 6, 'data', True, False, [1, 2, 3], (10, 20)]"
1095 | ]
1096 | },
1097 | "execution_count": 110,
1098 | "metadata": {},
1099 | "output_type": "execute_result"
1100 | }
1101 | ],
1102 | "source": [
1103 | "l1 = [1,2,3,3,4,4,5,6,'data',True,False,[1,2,3],(10,20)] #list\n",
1104 | "l1"
1105 | ]
1106 | },
1107 | {
1108 | "cell_type": "code",
1109 | "execution_count": 111,
1110 | "id": "d1b202aa",
1111 | "metadata": {},
1112 | "outputs": [],
1113 | "source": [
1114 | "l1[6] = 'ai'"
1115 | ]
1116 | },
1117 | {
1118 | "cell_type": "code",
1119 | "execution_count": 112,
1120 | "id": "b7e72a83",
1121 | "metadata": {},
1122 | "outputs": [
1123 | {
1124 | "data": {
1125 | "text/plain": [
1126 | "[1, 2, 3, 3, 4, 4, 'ai', 6, 'data', True, False, [1, 2, 3], (10, 20)]"
1127 | ]
1128 | },
1129 | "execution_count": 112,
1130 | "metadata": {},
1131 | "output_type": "execute_result"
1132 | }
1133 | ],
1134 | "source": [
1135 | "l1"
1136 | ]
1137 | },
1138 | {
1139 | "cell_type": "code",
1140 | "execution_count": 113,
1141 | "id": "f4957006",
1142 | "metadata": {},
1143 | "outputs": [],
1144 | "source": [
1145 | "l1.append('tareq')"
1146 | ]
1147 | },
1148 | {
1149 | "cell_type": "code",
1150 | "execution_count": 114,
1151 | "id": "765148ea",
1152 | "metadata": {},
1153 | "outputs": [
1154 | {
1155 | "data": {
1156 | "text/plain": [
1157 | "[1, 2, 3, 3, 4, 4, 'ai', 6, 'data', True, False, [1, 2, 3], (10, 20), 'tareq']"
1158 | ]
1159 | },
1160 | "execution_count": 114,
1161 | "metadata": {},
1162 | "output_type": "execute_result"
1163 | }
1164 | ],
1165 | "source": [
1166 | "l1"
1167 | ]
1168 | },
1169 | {
1170 | "cell_type": "code",
1171 | "execution_count": 115,
1172 | "id": "1bf8aee1",
1173 | "metadata": {},
1174 | "outputs": [],
1175 | "source": [
1176 | "l1.insert(6,'jacky')"
1177 | ]
1178 | },
1179 | {
1180 | "cell_type": "code",
1181 | "execution_count": 116,
1182 | "id": "2e3b311f",
1183 | "metadata": {},
1184 | "outputs": [
1185 | {
1186 | "data": {
1187 | "text/plain": [
1188 | "[1,\n",
1189 | " 2,\n",
1190 | " 3,\n",
1191 | " 3,\n",
1192 | " 4,\n",
1193 | " 4,\n",
1194 | " 'jacky',\n",
1195 | " 'ai',\n",
1196 | " 6,\n",
1197 | " 'data',\n",
1198 | " True,\n",
1199 | " False,\n",
1200 | " [1, 2, 3],\n",
1201 | " (10, 20),\n",
1202 | " 'tareq']"
1203 | ]
1204 | },
1205 | "execution_count": 116,
1206 | "metadata": {},
1207 | "output_type": "execute_result"
1208 | }
1209 | ],
1210 | "source": [
1211 | "l1"
1212 | ]
1213 | },
1214 | {
1215 | "cell_type": "code",
1216 | "execution_count": 117,
1217 | "id": "4d4f5803",
1218 | "metadata": {},
1219 | "outputs": [
1220 | {
1221 | "data": {
1222 | "text/plain": [
1223 | "'jacky'"
1224 | ]
1225 | },
1226 | "execution_count": 117,
1227 | "metadata": {},
1228 | "output_type": "execute_result"
1229 | }
1230 | ],
1231 | "source": [
1232 | "l1.pop(6)"
1233 | ]
1234 | },
1235 | {
1236 | "cell_type": "code",
1237 | "execution_count": 118,
1238 | "id": "89db6588",
1239 | "metadata": {},
1240 | "outputs": [
1241 | {
1242 | "data": {
1243 | "text/plain": [
1244 | "[1, 2, 3, 3, 4, 4, 'ai', 6, 'data', True, False, [1, 2, 3], (10, 20), 'tareq']"
1245 | ]
1246 | },
1247 | "execution_count": 118,
1248 | "metadata": {},
1249 | "output_type": "execute_result"
1250 | }
1251 | ],
1252 | "source": [
1253 | "l1"
1254 | ]
1255 | },
1256 | {
1257 | "cell_type": "code",
1258 | "execution_count": 119,
1259 | "id": "f003e1fa",
1260 | "metadata": {},
1261 | "outputs": [],
1262 | "source": [
1263 | "del l1[6]"
1264 | ]
1265 | },
1266 | {
1267 | "cell_type": "code",
1268 | "execution_count": 120,
1269 | "id": "5b83051a",
1270 | "metadata": {},
1271 | "outputs": [
1272 | {
1273 | "data": {
1274 | "text/plain": [
1275 | "[1, 2, 3, 3, 4, 4, 6, 'data', True, False, [1, 2, 3], (10, 20), 'tareq']"
1276 | ]
1277 | },
1278 | "execution_count": 120,
1279 | "metadata": {},
1280 | "output_type": "execute_result"
1281 | }
1282 | ],
1283 | "source": [
1284 | "l1"
1285 | ]
1286 | },
1287 | {
1288 | "cell_type": "code",
1289 | "execution_count": 121,
1290 | "id": "1baeb373",
1291 | "metadata": {},
1292 | "outputs": [],
1293 | "source": [
1294 | "l1.clear()"
1295 | ]
1296 | },
1297 | {
1298 | "cell_type": "code",
1299 | "execution_count": 122,
1300 | "id": "a7ca0413",
1301 | "metadata": {},
1302 | "outputs": [
1303 | {
1304 | "data": {
1305 | "text/plain": [
1306 | "[]"
1307 | ]
1308 | },
1309 | "execution_count": 122,
1310 | "metadata": {},
1311 | "output_type": "execute_result"
1312 | }
1313 | ],
1314 | "source": [
1315 | "l1"
1316 | ]
1317 | },
1318 | {
1319 | "cell_type": "code",
1320 | "execution_count": null,
1321 | "id": "d5981665",
1322 | "metadata": {},
1323 | "outputs": [],
1324 | "source": []
1325 | }
1326 | ],
1327 | "metadata": {
1328 | "kernelspec": {
1329 | "display_name": "Python 3",
1330 | "language": "python",
1331 | "name": "python3"
1332 | },
1333 | "language_info": {
1334 | "codemirror_mode": {
1335 | "name": "ipython",
1336 | "version": 3
1337 | },
1338 | "file_extension": ".py",
1339 | "mimetype": "text/x-python",
1340 | "name": "python",
1341 | "nbconvert_exporter": "python",
1342 | "pygments_lexer": "ipython3",
1343 | "version": "3.8.8"
1344 | }
1345 | },
1346 | "nbformat": 4,
1347 | "nbformat_minor": 5
1348 | }
1349 |
--------------------------------------------------------------------------------
/Class - 04 - Linear Regression.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "id": "572ea37f",
7 | "metadata": {},
8 | "outputs": [
9 | {
10 | "data": {
11 | "text/plain": [
12 | "'C:\\\\Users\\\\study mart\\\\Downloads\\\\ML Batch 05\\\\Class 04'"
13 | ]
14 | },
15 | "execution_count": 1,
16 | "metadata": {},
17 | "output_type": "execute_result"
18 | }
19 | ],
20 | "source": [
21 | "#find working dir\n",
22 | "import os\n",
23 | "os.getcwd() # cwd = current working dir"
24 | ]
25 | },
26 | {
27 | "cell_type": "code",
28 | "execution_count": 6,
29 | "id": "dc1f0342",
30 | "metadata": {},
31 | "outputs": [],
32 | "source": [
33 | "#change courrent working dir\n",
34 | "#os.chdir('copy the path')\n",
35 | "os.chdir('C:\\\\Users\\\\study mart\\\\Desktop\\\\New folder')"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": 7,
41 | "id": "3bafa36b",
42 | "metadata": {},
43 | "outputs": [
44 | {
45 | "data": {
46 | "text/plain": [
47 | "'C:\\\\Users\\\\study mart\\\\Desktop\\\\New folder'"
48 | ]
49 | },
50 | "execution_count": 7,
51 | "metadata": {},
52 | "output_type": "execute_result"
53 | }
54 | ],
55 | "source": [
56 | "import os\n",
57 | "os.getcwd()"
58 | ]
59 | },
60 | {
61 | "cell_type": "code",
62 | "execution_count": 8,
63 | "id": "93671570",
64 | "metadata": {},
65 | "outputs": [],
66 | "source": [
67 | "import pandas as pd\n",
68 | "df = pd.read_excel('home.xlsx')"
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 9,
74 | "id": "7ad54760",
75 | "metadata": {},
76 | "outputs": [
77 | {
78 | "data": {
79 | "text/html": [
80 | "\n",
81 | "\n",
94 | "
\n",
95 | " \n",
96 | " \n",
97 | " | \n",
98 | " area | \n",
99 | " rent | \n",
100 | "
\n",
101 | " \n",
102 | " \n",
103 | " \n",
104 | " | 0 | \n",
105 | " 2000 | \n",
106 | " 31500 | \n",
107 | "
\n",
108 | " \n",
109 | " | 1 | \n",
110 | " 2100 | \n",
111 | " 35000 | \n",
112 | "
\n",
113 | " \n",
114 | " | 2 | \n",
115 | " 2500 | \n",
116 | " 41050 | \n",
117 | "
\n",
118 | " \n",
119 | " | 3 | \n",
120 | " 2250 | \n",
121 | " 36100 | \n",
122 | "
\n",
123 | " \n",
124 | " | 4 | \n",
125 | " 3000 | \n",
126 | " 52100 | \n",
127 | "
\n",
128 | " \n",
129 | "
\n",
130 | "
"
131 | ],
132 | "text/plain": [
133 | " area rent\n",
134 | "0 2000 31500\n",
135 | "1 2100 35000\n",
136 | "2 2500 41050\n",
137 | "3 2250 36100\n",
138 | "4 3000 52100"
139 | ]
140 | },
141 | "execution_count": 9,
142 | "metadata": {},
143 | "output_type": "execute_result"
144 | }
145 | ],
146 | "source": [
147 | "df.head()"
148 | ]
149 | },
150 | {
151 | "cell_type": "code",
152 | "execution_count": 11,
153 | "id": "40bebcb4",
154 | "metadata": {},
155 | "outputs": [
156 | {
157 | "data": {
158 | "text/plain": [
159 | "area 0\n",
160 | "rent 0\n",
161 | "dtype: int64"
162 | ]
163 | },
164 | "execution_count": 11,
165 | "metadata": {},
166 | "output_type": "execute_result"
167 | }
168 | ],
169 | "source": [
170 | "df.isnull().sum()"
171 | ]
172 | },
173 | {
174 | "cell_type": "code",
175 | "execution_count": 12,
176 | "id": "3d595736",
177 | "metadata": {},
178 | "outputs": [
179 | {
180 | "data": {
181 | "text/plain": [
182 | "(29, 2)"
183 | ]
184 | },
185 | "execution_count": 12,
186 | "metadata": {},
187 | "output_type": "execute_result"
188 | }
189 | ],
190 | "source": [
191 | "df.shape # 29 rows, 2 columns"
192 | ]
193 | },
194 | {
195 | "cell_type": "code",
196 | "execution_count": 17,
197 | "id": "465fa161",
198 | "metadata": {},
199 | "outputs": [
200 | {
201 | "data": {
202 | "text/plain": [
203 | "24 2800\n",
204 | "25 3100\n",
205 | "26 2750\n",
206 | "27 1800\n",
207 | "28 2200\n",
208 | "Name: area, dtype: int64"
209 | ]
210 | },
211 | "execution_count": 17,
212 | "metadata": {},
213 | "output_type": "execute_result"
214 | }
215 | ],
216 | "source": [
217 | "df.area.tail()"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": 19,
223 | "id": "d8ec3ae7",
224 | "metadata": {},
225 | "outputs": [
226 | {
227 | "data": {
228 | "text/plain": [
229 | "0 31500\n",
230 | "1 35000\n",
231 | "2 41050\n",
232 | "3 36100\n",
233 | "4 52100\n",
234 | "Name: rent, dtype: int64"
235 | ]
236 | },
237 | "execution_count": 19,
238 | "metadata": {},
239 | "output_type": "execute_result"
240 | }
241 | ],
242 | "source": [
243 | "df['rent'].head()"
244 | ]
245 | },
246 | {
247 | "cell_type": "code",
248 | "execution_count": 20,
249 | "id": "02d4f83f",
250 | "metadata": {},
251 | "outputs": [],
252 | "source": [
253 | "import matplotlib.pyplot as plt\n",
254 | "import numpy as np"
255 | ]
256 | },
257 | {
258 | "cell_type": "markdown",
259 | "id": "d8d25314",
260 | "metadata": {},
261 | "source": [
262 | "# Data Visualization"
263 | ]
264 | },
265 | {
266 | "cell_type": "code",
267 | "execution_count": 21,
268 | "id": "2c0381cf",
269 | "metadata": {},
270 | "outputs": [
271 | {
272 | "data": {
273 | "text/plain": [
274 | ""
275 | ]
276 | },
277 | "execution_count": 21,
278 | "metadata": {},
279 | "output_type": "execute_result"
280 | },
281 | {
282 | "data": {
283 | "image/png": "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\n",
284 | "text/plain": [
285 | ""
286 | ]
287 | },
288 | "metadata": {
289 | "needs_background": "light"
290 | },
291 | "output_type": "display_data"
292 | }
293 | ],
294 | "source": [
295 | "plt.scatter(df.area, df.rent)"
296 | ]
297 | },
298 | {
299 | "cell_type": "code",
300 | "execution_count": 38,
301 | "id": "736e10d2",
302 | "metadata": {},
303 | "outputs": [
304 | {
305 | "data": {
306 | "image/png": "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\n",
307 | "text/plain": [
308 | ""
309 | ]
310 | },
311 | "metadata": {
312 | "needs_background": "light"
313 | },
314 | "output_type": "display_data"
315 | }
316 | ],
317 | "source": [
318 | "plt.scatter(df['area'], df['rent'], color='black',marker=\"o\")\n",
319 | "plt.xlabel('Size of house',color='red')\n",
320 | "plt.ylabel('Rent of the house',color='red')\n",
321 | "plt.title('House Rent', color='blue')\n",
322 | "plt.savefig('rent.png')"
323 | ]
324 | },
325 | {
326 | "cell_type": "markdown",
327 | "id": "b6e90b23",
328 | "metadata": {},
329 | "source": [
330 | "# Seperate Train and Test Data"
331 | ]
332 | },
333 | {
334 | "cell_type": "code",
335 | "execution_count": 39,
336 | "id": "c57d29d3",
337 | "metadata": {},
338 | "outputs": [],
339 | "source": [
340 | "from sklearn.model_selection import train_test_split"
341 | ]
342 | },
343 | {
344 | "cell_type": "code",
345 | "execution_count": 57,
346 | "id": "5a6f46d5",
347 | "metadata": {},
348 | "outputs": [],
349 | "source": [
350 | "x = df[['area']]\n",
351 | "y = df['rent']"
352 | ]
353 | },
354 | {
355 | "cell_type": "code",
356 | "execution_count": 58,
357 | "id": "ab89aa81",
358 | "metadata": {},
359 | "outputs": [],
360 | "source": [
361 | "xtrain, xtest, ytrain,ytest = train_test_split(x,y, train_size=.70) # test_size=.30"
362 | ]
363 | },
364 | {
365 | "cell_type": "code",
366 | "execution_count": 59,
367 | "id": "f43cff93",
368 | "metadata": {},
369 | "outputs": [
370 | {
371 | "data": {
372 | "text/plain": [
373 | "(20, 1)"
374 | ]
375 | },
376 | "execution_count": 59,
377 | "metadata": {},
378 | "output_type": "execute_result"
379 | }
380 | ],
381 | "source": [
382 | "xtrain.shape"
383 | ]
384 | },
385 | {
386 | "cell_type": "code",
387 | "execution_count": 60,
388 | "id": "a38b07aa",
389 | "metadata": {},
390 | "outputs": [
391 | {
392 | "data": {
393 | "text/plain": [
394 | "(20,)"
395 | ]
396 | },
397 | "execution_count": 60,
398 | "metadata": {},
399 | "output_type": "execute_result"
400 | }
401 | ],
402 | "source": [
403 | "ytrain.shape"
404 | ]
405 | },
406 | {
407 | "cell_type": "code",
408 | "execution_count": 61,
409 | "id": "d3bdcd0a",
410 | "metadata": {},
411 | "outputs": [],
412 | "source": [
413 | "from sklearn.linear_model import LinearRegression"
414 | ]
415 | },
416 | {
417 | "cell_type": "code",
418 | "execution_count": 62,
419 | "id": "e0378e7b",
420 | "metadata": {},
421 | "outputs": [],
422 | "source": [
423 | "reg = LinearRegression()"
424 | ]
425 | },
426 | {
427 | "cell_type": "code",
428 | "execution_count": 63,
429 | "id": "a70aa1a4",
430 | "metadata": {},
431 | "outputs": [
432 | {
433 | "data": {
434 | "text/plain": [
435 | "LinearRegression()"
436 | ]
437 | },
438 | "execution_count": 63,
439 | "metadata": {},
440 | "output_type": "execute_result"
441 | }
442 | ],
443 | "source": [
444 | "reg.fit(xtrain,ytrain) #training"
445 | ]
446 | },
447 | {
448 | "cell_type": "code",
449 | "execution_count": 67,
450 | "id": "ab5040c5",
451 | "metadata": {},
452 | "outputs": [],
453 | "source": [
454 | "m = reg.coef_"
455 | ]
456 | },
457 | {
458 | "cell_type": "code",
459 | "execution_count": 68,
460 | "id": "ad79660e",
461 | "metadata": {},
462 | "outputs": [],
463 | "source": [
464 | "c = reg.intercept_"
465 | ]
466 | },
467 | {
468 | "cell_type": "code",
469 | "execution_count": 69,
470 | "id": "262e735e",
471 | "metadata": {},
472 | "outputs": [
473 | {
474 | "data": {
475 | "text/plain": [
476 | "array([73223.6155322])"
477 | ]
478 | },
479 | "execution_count": 69,
480 | "metadata": {},
481 | "output_type": "execute_result"
482 | }
483 | ],
484 | "source": [
485 | "reg.predict([[4000]])"
486 | ]
487 | },
488 | {
489 | "cell_type": "code",
490 | "execution_count": 70,
491 | "id": "17ad6b67",
492 | "metadata": {},
493 | "outputs": [],
494 | "source": [
495 | "y = m*4000 + c"
496 | ]
497 | },
498 | {
499 | "cell_type": "code",
500 | "execution_count": 71,
501 | "id": "761fea45",
502 | "metadata": {},
503 | "outputs": [
504 | {
505 | "data": {
506 | "text/plain": [
507 | "array([73223.6155322])"
508 | ]
509 | },
510 | "execution_count": 71,
511 | "metadata": {},
512 | "output_type": "execute_result"
513 | }
514 | ],
515 | "source": [
516 | "y"
517 | ]
518 | },
519 | {
520 | "cell_type": "code",
521 | "execution_count": 75,
522 | "id": "9dd73f79",
523 | "metadata": {},
524 | "outputs": [
525 | {
526 | "data": {
527 | "text/html": [
528 | "\n",
529 | "\n",
542 | "
\n",
543 | " \n",
544 | " \n",
545 | " | \n",
546 | " area | \n",
547 | " rent | \n",
548 | " Output | \n",
549 | "
\n",
550 | " \n",
551 | " \n",
552 | " \n",
553 | " | 0 | \n",
554 | " 2000 | \n",
555 | " 31500 | \n",
556 | " 31191.226701 | \n",
557 | "
\n",
558 | " \n",
559 | " | 1 | \n",
560 | " 2100 | \n",
561 | " 35000 | \n",
562 | " 33292.846143 | \n",
563 | "
\n",
564 | " \n",
565 | " | 2 | \n",
566 | " 2500 | \n",
567 | " 41050 | \n",
568 | " 41699.323909 | \n",
569 | "
\n",
570 | " \n",
571 | " | 3 | \n",
572 | " 2250 | \n",
573 | " 36100 | \n",
574 | " 36445.275305 | \n",
575 | "
\n",
576 | " \n",
577 | " | 4 | \n",
578 | " 3000 | \n",
579 | " 52100 | \n",
580 | " 52207.421117 | \n",
581 | "
\n",
582 | " \n",
583 | " | 5 | \n",
584 | " 1900 | \n",
585 | " 32500 | \n",
586 | " 29089.607260 | \n",
587 | "
\n",
588 | " \n",
589 | " | 6 | \n",
590 | " 1500 | \n",
591 | " 20000 | \n",
592 | " 20683.129493 | \n",
593 | "
\n",
594 | " \n",
595 | " | 7 | \n",
596 | " 1850 | \n",
597 | " 24500 | \n",
598 | " 28038.797539 | \n",
599 | "
\n",
600 | " \n",
601 | " | 8 | \n",
602 | " 2700 | \n",
603 | " 48000 | \n",
604 | " 45902.562792 | \n",
605 | "
\n",
606 | " \n",
607 | " | 9 | \n",
608 | " 2100 | \n",
609 | " 31000 | \n",
610 | " 33292.846143 | \n",
611 | "
\n",
612 | " \n",
613 | " | 10 | \n",
614 | " 2150 | \n",
615 | " 34500 | \n",
616 | " 34343.655864 | \n",
617 | "
\n",
618 | " \n",
619 | " | 11 | \n",
620 | " 2100 | \n",
621 | " 32000 | \n",
622 | " 33292.846143 | \n",
623 | "
\n",
624 | " \n",
625 | " | 12 | \n",
626 | " 2100 | \n",
627 | " 34500 | \n",
628 | " 33292.846143 | \n",
629 | "
\n",
630 | " \n",
631 | " | 13 | \n",
632 | " 2510 | \n",
633 | " 40050 | \n",
634 | " 41909.485853 | \n",
635 | "
\n",
636 | " \n",
637 | " | 14 | \n",
638 | " 2250 | \n",
639 | " 34100 | \n",
640 | " 36445.275305 | \n",
641 | "
\n",
642 | " \n",
643 | " | 15 | \n",
644 | " 3100 | \n",
645 | " 51500 | \n",
646 | " 54309.040558 | \n",
647 | "
\n",
648 | " \n",
649 | " | 16 | \n",
650 | " 1800 | \n",
651 | " 30500 | \n",
652 | " 26987.987818 | \n",
653 | "
\n",
654 | " \n",
655 | " | 17 | \n",
656 | " 1550 | \n",
657 | " 21000 | \n",
658 | " 21733.939214 | \n",
659 | "
\n",
660 | " \n",
661 | " | 18 | \n",
662 | " 1800 | \n",
663 | " 25000 | \n",
664 | " 26987.987818 | \n",
665 | "
\n",
666 | " \n",
667 | " | 19 | \n",
668 | " 2700 | \n",
669 | " 47000 | \n",
670 | " 45902.562792 | \n",
671 | "
\n",
672 | " \n",
673 | " | 20 | \n",
674 | " 2110 | \n",
675 | " 31500 | \n",
676 | " 33503.008087 | \n",
677 | "
\n",
678 | " \n",
679 | " | 21 | \n",
680 | " 2100 | \n",
681 | " 33500 | \n",
682 | " 33292.846143 | \n",
683 | "
\n",
684 | " \n",
685 | " | 22 | \n",
686 | " 3500 | \n",
687 | " 70000 | \n",
688 | " 62715.518324 | \n",
689 | "
\n",
690 | " \n",
691 | " | 23 | \n",
692 | " 1200 | \n",
693 | " 20000 | \n",
694 | " 14378.271169 | \n",
695 | "
\n",
696 | " \n",
697 | " | 24 | \n",
698 | " 2800 | \n",
699 | " 50000 | \n",
700 | " 48004.182234 | \n",
701 | "
\n",
702 | " \n",
703 | " | 25 | \n",
704 | " 3100 | \n",
705 | " 53000 | \n",
706 | " 54309.040558 | \n",
707 | "
\n",
708 | " \n",
709 | " | 26 | \n",
710 | " 2750 | \n",
711 | " 48000 | \n",
712 | " 46953.372513 | \n",
713 | "
\n",
714 | " \n",
715 | " | 27 | \n",
716 | " 1800 | \n",
717 | " 25000 | \n",
718 | " 26987.987818 | \n",
719 | "
\n",
720 | " \n",
721 | " | 28 | \n",
722 | " 2200 | \n",
723 | " 31460 | \n",
724 | " 35394.465584 | \n",
725 | "
\n",
726 | " \n",
727 | "
\n",
728 | "
"
729 | ],
730 | "text/plain": [
731 | " area rent Output\n",
732 | "0 2000 31500 31191.226701\n",
733 | "1 2100 35000 33292.846143\n",
734 | "2 2500 41050 41699.323909\n",
735 | "3 2250 36100 36445.275305\n",
736 | "4 3000 52100 52207.421117\n",
737 | "5 1900 32500 29089.607260\n",
738 | "6 1500 20000 20683.129493\n",
739 | "7 1850 24500 28038.797539\n",
740 | "8 2700 48000 45902.562792\n",
741 | "9 2100 31000 33292.846143\n",
742 | "10 2150 34500 34343.655864\n",
743 | "11 2100 32000 33292.846143\n",
744 | "12 2100 34500 33292.846143\n",
745 | "13 2510 40050 41909.485853\n",
746 | "14 2250 34100 36445.275305\n",
747 | "15 3100 51500 54309.040558\n",
748 | "16 1800 30500 26987.987818\n",
749 | "17 1550 21000 21733.939214\n",
750 | "18 1800 25000 26987.987818\n",
751 | "19 2700 47000 45902.562792\n",
752 | "20 2110 31500 33503.008087\n",
753 | "21 2100 33500 33292.846143\n",
754 | "22 3500 70000 62715.518324\n",
755 | "23 1200 20000 14378.271169\n",
756 | "24 2800 50000 48004.182234\n",
757 | "25 3100 53000 54309.040558\n",
758 | "26 2750 48000 46953.372513\n",
759 | "27 1800 25000 26987.987818\n",
760 | "28 2200 31460 35394.465584"
761 | ]
762 | },
763 | "execution_count": 75,
764 | "metadata": {},
765 | "output_type": "execute_result"
766 | }
767 | ],
768 | "source": [
769 | "df['Output'] = reg.predict(x)\n",
770 | "df"
771 | ]
772 | },
773 | {
774 | "cell_type": "markdown",
775 | "id": "322eeb18",
776 | "metadata": {},
777 | "source": [
778 | "# Best Fit Line"
779 | ]
780 | },
781 | {
782 | "cell_type": "code",
783 | "execution_count": 80,
784 | "id": "2c9d07d9",
785 | "metadata": {},
786 | "outputs": [
787 | {
788 | "data": {
789 | "text/plain": [
790 | "Text(0.5, 1.0, 'House Rent')"
791 | ]
792 | },
793 | "execution_count": 80,
794 | "metadata": {},
795 | "output_type": "execute_result"
796 | },
797 | {
798 | "data": {
799 | "image/png": "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\n",
800 | "text/plain": [
801 | ""
802 | ]
803 | },
804 | "metadata": {
805 | "needs_background": "light"
806 | },
807 | "output_type": "display_data"
808 | }
809 | ],
810 | "source": [
811 | "plt.plot(df.area , df.Output)\n",
812 | "plt.scatter(df['area'], df['rent'], color='black',marker=\"o\")\n",
813 | "plt.xlabel('Size of house',color='red')\n",
814 | "plt.ylabel('Rent of the house',color='red')\n",
815 | "plt.title('House Rent', color='blue')"
816 | ]
817 | },
818 | {
819 | "cell_type": "code",
820 | "execution_count": 81,
821 | "id": "fa266d92",
822 | "metadata": {},
823 | "outputs": [
824 | {
825 | "data": {
826 | "text/plain": [
827 | "0.9819930357448862"
828 | ]
829 | },
830 | "execution_count": 81,
831 | "metadata": {},
832 | "output_type": "execute_result"
833 | }
834 | ],
835 | "source": [
836 | "reg.score(xtest,ytest) # R squared valur"
837 | ]
838 | },
839 | {
840 | "cell_type": "code",
841 | "execution_count": 82,
842 | "id": "23df9285",
843 | "metadata": {},
844 | "outputs": [
845 | {
846 | "data": {
847 | "text/plain": [
848 | "array([115256.00436321])"
849 | ]
850 | },
851 | "execution_count": 82,
852 | "metadata": {},
853 | "output_type": "execute_result"
854 | }
855 | ],
856 | "source": [
857 | "y = m*6000 + c\n",
858 | "y"
859 | ]
860 | },
861 | {
862 | "cell_type": "code",
863 | "execution_count": 83,
864 | "id": "a7625b3d",
865 | "metadata": {},
866 | "outputs": [],
867 | "source": [
868 | "y = m*649.20 + c"
869 | ]
870 | },
871 | {
872 | "cell_type": "code",
873 | "execution_count": 84,
874 | "id": "b2c477e1",
875 | "metadata": {},
876 | "outputs": [
877 | {
878 | "data": {
879 | "text/plain": [
880 | "array([2802.55128472])"
881 | ]
882 | },
883 | "execution_count": 84,
884 | "metadata": {},
885 | "output_type": "execute_result"
886 | }
887 | ],
888 | "source": [
889 | "y"
890 | ]
891 | },
892 | {
893 | "cell_type": "code",
894 | "execution_count": null,
895 | "id": "d863508a",
896 | "metadata": {},
897 | "outputs": [],
898 | "source": []
899 | }
900 | ],
901 | "metadata": {
902 | "kernelspec": {
903 | "display_name": "Python 3",
904 | "language": "python",
905 | "name": "python3"
906 | },
907 | "language_info": {
908 | "codemirror_mode": {
909 | "name": "ipython",
910 | "version": 3
911 | },
912 | "file_extension": ".py",
913 | "mimetype": "text/x-python",
914 | "name": "python",
915 | "nbconvert_exporter": "python",
916 | "pygments_lexer": "ipython3",
917 | "version": "3.8.8"
918 | }
919 | },
920 | "nbformat": 4,
921 | "nbformat_minor": 5
922 | }
923 |
--------------------------------------------------------------------------------
/LSTM_.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "name": "LSTM .ipynb",
7 | "provenance": [],
8 | "collapsed_sections": []
9 | },
10 | "kernelspec": {
11 | "name": "python3",
12 | "display_name": "Python 3"
13 | },
14 | "language_info": {
15 | "name": "python"
16 | }
17 | },
18 | "cells": [
19 | {
20 | "cell_type": "code",
21 | "execution_count": 1,
22 | "metadata": {
23 | "colab": {
24 | "resources": {
25 | "http://localhost:8080/nbextensions/google.colab/files.js": {
26 | "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgZG8gewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwoKICAgICAgbGV0IHBlcmNlbnREb25lID0gZmlsZURhdGEuYnl0ZUxlbmd0aCA9PT0gMCA/CiAgICAgICAgICAxMDAgOgogICAgICAgICAgTWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCk7CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPSBgJHtwZXJjZW50RG9uZX0lIGRvbmVgOwoKICAgIH0gd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCk7CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
27 | "ok": true,
28 | "headers": [
29 | [
30 | "content-type",
31 | "application/javascript"
32 | ]
33 | ],
34 | "status": 200,
35 | "status_text": ""
36 | }
37 | },
38 | "base_uri": "https://localhost:8080/",
39 | "height": 73
40 | },
41 | "id": "Z2J8wSDhrIiI",
42 | "outputId": "21631cca-741e-48ab-c64a-ed17ff5fd114"
43 | },
44 | "outputs": [
45 | {
46 | "output_type": "display_data",
47 | "data": {
48 | "text/html": [
49 | "\n",
50 | " \n",
52 | " \n",
56 | " "
57 | ],
58 | "text/plain": [
59 | ""
60 | ]
61 | },
62 | "metadata": {}
63 | },
64 | {
65 | "output_type": "stream",
66 | "name": "stdout",
67 | "text": [
68 | "Saving lstm data.csv to lstm data.csv\n"
69 | ]
70 | }
71 | ],
72 | "source": [
73 | "from google.colab import files\n",
74 | "UP = files.upload()"
75 | ]
76 | },
77 | {
78 | "cell_type": "code",
79 | "source": [
80 | "import pandas as pd\n",
81 | "df =pd.read_csv ('lstm data.csv', header=None, index_col=None, delimiter=',')"
82 | ],
83 | "metadata": {
84 | "id": "PMOvK5C7rUYZ"
85 | },
86 | "execution_count": 2,
87 | "outputs": []
88 | },
89 | {
90 | "cell_type": "code",
91 | "source": [
92 | "import numpy as np\n",
93 | "import matplotlib.pyplot as plt\n",
94 | "import pandas as pd\n",
95 | "from pandas import read_csv\n",
96 | "import math\n",
97 | "from keras.models import Sequential\n",
98 | "from keras.layers import Dense\n",
99 | "from keras.layers import LSTM\n",
100 | "from sklearn.preprocessing import MinMaxScaler\n",
101 | "from sklearn.metrics import mean_squared_error\n",
102 | "from keras.layers.core import Dense, Activation, Dropout\n",
103 | "import time #helper libraries"
104 | ],
105 | "metadata": {
106 | "id": "t2CJLppGrtnB"
107 | },
108 | "execution_count": 3,
109 | "outputs": []
110 | },
111 | {
112 | "cell_type": "code",
113 | "source": [
114 | "input_file = df\n",
115 | "\n",
116 | "# convert an array of values into a dataset matrix\n",
117 | "def create_dataset(dataset, look_back=1):\n",
118 | "\tdataX, dataY = [], []\n",
119 | "\tfor i in range(len(dataset)-look_back-1):\n",
120 | "\t\ta = dataset[i:(i+look_back), 0]\n",
121 | "\t\tdataX.append(a)\n",
122 | "\t\tdataY.append(dataset[i + look_back, 0])\n",
123 | "\treturn np.array(dataX), np.array(dataY)"
124 | ],
125 | "metadata": {
126 | "id": "a5PWkTy_rymw"
127 | },
128 | "execution_count": 5,
129 | "outputs": []
130 | },
131 | {
132 | "cell_type": "code",
133 | "source": [
134 | "# fix random seed for reproducibility\n",
135 | "np.random.seed(5)"
136 | ],
137 | "metadata": {
138 | "id": "i7EbCXasr9ju"
139 | },
140 | "execution_count": 6,
141 | "outputs": []
142 | },
143 | {
144 | "cell_type": "code",
145 | "source": [
146 | "# take close price column[5]\n",
147 | "all_y = df[5].values\n",
148 | "dataset=all_y.reshape(-1, 1)"
149 | ],
150 | "metadata": {
151 | "id": "4jtGVdaUsCCG"
152 | },
153 | "execution_count": 7,
154 | "outputs": []
155 | },
156 | {
157 | "cell_type": "code",
158 | "source": [
159 | "# take close price column[5]\n",
160 | "all_y = df[5].values\n",
161 | "dataset=all_y.reshape(-1, 1)\n",
162 | "\n",
163 | "# normalize the dataset\n",
164 | "scaler = MinMaxScaler(feature_range=(0, 1))\n",
165 | "dataset = scaler.fit_transform(dataset)"
166 | ],
167 | "metadata": {
168 | "id": "qfjD1xsdsFUm"
169 | },
170 | "execution_count": 8,
171 | "outputs": []
172 | },
173 | {
174 | "cell_type": "code",
175 | "source": [
176 | "# split into train and test sets, 50% test data, 50% training data\n",
177 | "train_size = int(len(dataset) * 0.5)\n",
178 | "test_size = len(dataset) - train_size\n",
179 | "train, test = dataset[0:train_size,:], dataset[train_size:len(dataset),:]"
180 | ],
181 | "metadata": {
182 | "id": "KNMdyLtEskxx"
183 | },
184 | "execution_count": 9,
185 | "outputs": []
186 | },
187 | {
188 | "cell_type": "code",
189 | "source": [
190 | "# reshape into X=t and Y=t+1, timestep 240\n",
191 | "look_back = 240\n",
192 | "trainX, trainY = create_dataset(train, look_back)\n",
193 | "testX, testY = create_dataset(test, look_back)"
194 | ],
195 | "metadata": {
196 | "id": "TGc6gEAisk0f"
197 | },
198 | "execution_count": 10,
199 | "outputs": []
200 | },
201 | {
202 | "cell_type": "code",
203 | "source": [
204 | "# reshape input to be [samples, time steps, features]\n",
205 | "trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))\n",
206 | "testX = np.reshape(testX, (testX.shape[0], 1, testX.shape[1]))"
207 | ],
208 | "metadata": {
209 | "id": "56Zv-8oOsk3m"
210 | },
211 | "execution_count": 11,
212 | "outputs": []
213 | },
214 | {
215 | "cell_type": "code",
216 | "source": [
217 | "# create and fit the LSTM network, optimizer=adam, 25 neurons, dropout 0.1\n",
218 | "model = Sequential()\n",
219 | "model.add(LSTM(25, input_shape=(1, look_back)))\n",
220 | "model.add(Dropout(0.1))\n",
221 | "model.add(Dense(1))\n",
222 | "model.compile(loss='mse', optimizer='adam')\n",
223 | "model.fit(trainX, trainY, epochs=20, batch_size=240, verbose=1)"
224 | ],
225 | "metadata": {
226 | "colab": {
227 | "base_uri": "https://localhost:8080/"
228 | },
229 | "id": "BbqCQ1yPsrcH",
230 | "outputId": "a3cb729b-a3b0-4df4-d478-28b0a8b396f6"
231 | },
232 | "execution_count": 12,
233 | "outputs": [
234 | {
235 | "output_type": "stream",
236 | "name": "stdout",
237 | "text": [
238 | "Epoch 1/20\n",
239 | "10/10 [==============================] - 3s 7ms/step - loss: 0.0060\n",
240 | "Epoch 2/20\n",
241 | "10/10 [==============================] - 0s 5ms/step - loss: 0.0019\n",
242 | "Epoch 3/20\n",
243 | "10/10 [==============================] - 0s 4ms/step - loss: 0.0013\n",
244 | "Epoch 4/20\n",
245 | "10/10 [==============================] - 0s 10ms/step - loss: 0.0010\n",
246 | "Epoch 5/20\n",
247 | "10/10 [==============================] - 0s 10ms/step - loss: 7.3312e-04\n",
248 | "Epoch 6/20\n",
249 | "10/10 [==============================] - 0s 11ms/step - loss: 6.2153e-04\n",
250 | "Epoch 7/20\n",
251 | "10/10 [==============================] - 0s 10ms/step - loss: 5.4827e-04\n",
252 | "Epoch 8/20\n",
253 | "10/10 [==============================] - 0s 13ms/step - loss: 4.9733e-04\n",
254 | "Epoch 9/20\n",
255 | "10/10 [==============================] - 0s 8ms/step - loss: 4.8755e-04\n",
256 | "Epoch 10/20\n",
257 | "10/10 [==============================] - 0s 8ms/step - loss: 4.4003e-04\n",
258 | "Epoch 11/20\n",
259 | "10/10 [==============================] - 0s 5ms/step - loss: 3.9734e-04\n",
260 | "Epoch 12/20\n",
261 | "10/10 [==============================] - 0s 4ms/step - loss: 3.7042e-04\n",
262 | "Epoch 13/20\n",
263 | "10/10 [==============================] - 0s 4ms/step - loss: 3.6348e-04\n",
264 | "Epoch 14/20\n",
265 | "10/10 [==============================] - 0s 5ms/step - loss: 3.4665e-04\n",
266 | "Epoch 15/20\n",
267 | "10/10 [==============================] - 0s 5ms/step - loss: 3.1516e-04\n",
268 | "Epoch 16/20\n",
269 | "10/10 [==============================] - 0s 5ms/step - loss: 3.0348e-04\n",
270 | "Epoch 17/20\n",
271 | "10/10 [==============================] - 0s 5ms/step - loss: 2.9378e-04\n",
272 | "Epoch 18/20\n",
273 | "10/10 [==============================] - 0s 5ms/step - loss: 2.8015e-04\n",
274 | "Epoch 19/20\n",
275 | "10/10 [==============================] - 0s 5ms/step - loss: 2.6199e-04\n",
276 | "Epoch 20/20\n",
277 | "10/10 [==============================] - 0s 5ms/step - loss: 2.6265e-04\n"
278 | ]
279 | },
280 | {
281 | "output_type": "execute_result",
282 | "data": {
283 | "text/plain": [
284 | ""
285 | ]
286 | },
287 | "metadata": {},
288 | "execution_count": 12
289 | }
290 | ]
291 | },
292 | {
293 | "cell_type": "code",
294 | "source": [
295 | "# make predictions\n",
296 | "trainPredict = model.predict(trainX)\n",
297 | "testPredict = model.predict(testX)"
298 | ],
299 | "metadata": {
300 | "id": "ZfzhbSXusren"
301 | },
302 | "execution_count": 13,
303 | "outputs": []
304 | },
305 | {
306 | "cell_type": "code",
307 | "source": [
308 | "trainPredict"
309 | ],
310 | "metadata": {
311 | "colab": {
312 | "base_uri": "https://localhost:8080/"
313 | },
314 | "id": "2lhYVWWksrhO",
315 | "outputId": "67442fbb-a72b-4c20-ce35-d542fdd7fcdf"
316 | },
317 | "execution_count": 14,
318 | "outputs": [
319 | {
320 | "output_type": "execute_result",
321 | "data": {
322 | "text/plain": [
323 | "array([[0.11482746],\n",
324 | " [0.11490844],\n",
325 | " [0.11595166],\n",
326 | " ...,\n",
327 | " [0.15892781],\n",
328 | " [0.15970123],\n",
329 | " [0.16205542]], dtype=float32)"
330 | ]
331 | },
332 | "metadata": {},
333 | "execution_count": 14
334 | }
335 | ]
336 | },
337 | {
338 | "cell_type": "code",
339 | "source": [
340 | "testPredict"
341 | ],
342 | "metadata": {
343 | "colab": {
344 | "base_uri": "https://localhost:8080/"
345 | },
346 | "id": "HTwEaLNss9ov",
347 | "outputId": "bd75745f-9632-4b3b-ccc6-a0af514cb267"
348 | },
349 | "execution_count": 15,
350 | "outputs": [
351 | {
352 | "output_type": "execute_result",
353 | "data": {
354 | "text/plain": [
355 | "array([[0.15497756],\n",
356 | " [0.15336645],\n",
357 | " [0.15448435],\n",
358 | " ...,\n",
359 | " [0.6446615 ],\n",
360 | " [0.6525498 ],\n",
361 | " [0.65636975]], dtype=float32)"
362 | ]
363 | },
364 | "metadata": {},
365 | "execution_count": 15
366 | }
367 | ]
368 | },
369 | {
370 | "cell_type": "code",
371 | "source": [
372 | "# invert predictions\n",
373 | "trainPredict = scaler.inverse_transform(trainPredict)\n",
374 | "trainY = scaler.inverse_transform([trainY])\n",
375 | "testPredict = scaler.inverse_transform(testPredict)\n",
376 | "testY = scaler.inverse_transform([testY])"
377 | ],
378 | "metadata": {
379 | "id": "iqpKkHvRs-_d"
380 | },
381 | "execution_count": 16,
382 | "outputs": []
383 | },
384 | {
385 | "cell_type": "code",
386 | "source": [
387 | "# calculate root mean squared error\n",
388 | "trainScore = math.sqrt(mean_squared_error(trainY[0], trainPredict[:,0]))\n",
389 | "print('Train Score: %.2f RMSE' % (trainScore))\n",
390 | "testScore = math.sqrt(mean_squared_error(testY[0], testPredict[:,0]))\n",
391 | "print('Test Score: %.2f RMSE' % (testScore))"
392 | ],
393 | "metadata": {
394 | "colab": {
395 | "base_uri": "https://localhost:8080/"
396 | },
397 | "id": "HzZbZSiMtBV-",
398 | "outputId": "af8ce5cd-91b1-49a7-b0bc-8d34f0b93ffd"
399 | },
400 | "execution_count": 17,
401 | "outputs": [
402 | {
403 | "output_type": "stream",
404 | "name": "stdout",
405 | "text": [
406 | "Train Score: 1.38 RMSE\n",
407 | "Test Score: 11.82 RMSE\n"
408 | ]
409 | }
410 | ]
411 | },
412 | {
413 | "cell_type": "code",
414 | "source": [
415 | "# shift train predictions for plotting\n",
416 | "trainPredictPlot = np.empty_like(dataset)\n",
417 | "trainPredictPlot[:, :] = np.nan\n",
418 | "trainPredictPlot[look_back:len(trainPredict)+look_back, :] = trainPredict"
419 | ],
420 | "metadata": {
421 | "id": "FVfU8pvctDNP"
422 | },
423 | "execution_count": 18,
424 | "outputs": []
425 | },
426 | {
427 | "cell_type": "code",
428 | "source": [
429 | "# shift test predictions for plotting\n",
430 | "testPredictPlot = np.empty_like(dataset)\n",
431 | "testPredictPlot[:, :] = np.nan\n",
432 | "testPredictPlot[len(trainPredict)+(look_back*2)+1:len(dataset)-1, :] = testPredict"
433 | ],
434 | "metadata": {
435 | "id": "sz-hs9BTtFYe"
436 | },
437 | "execution_count": 19,
438 | "outputs": []
439 | },
440 | {
441 | "cell_type": "code",
442 | "source": [
443 | "# plot baseline and predictions\n",
444 | "plt.plot(scaler.inverse_transform(dataset))\n",
445 | "plt.plot(trainPredictPlot)\n",
446 | "print('testPrices:')\n",
447 | "testPrices=scaler.inverse_transform(dataset[test_size+look_back:])"
448 | ],
449 | "metadata": {
450 | "colab": {
451 | "base_uri": "https://localhost:8080/",
452 | "height": 284
453 | },
454 | "id": "9qa_shrstHGu",
455 | "outputId": "8455d889-a07f-4c75-c3e9-df05c59d75d9"
456 | },
457 | "execution_count": 20,
458 | "outputs": [
459 | {
460 | "output_type": "stream",
461 | "name": "stdout",
462 | "text": [
463 | "testPrices:\n"
464 | ]
465 | },
466 | {
467 | "output_type": "display_data",
468 | "data": {
469 | "image/png": "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\n",
470 | "text/plain": [
471 | ""
472 | ]
473 | },
474 | "metadata": {
475 | "needs_background": "light"
476 | }
477 | }
478 | ]
479 | },
480 | {
481 | "cell_type": "code",
482 | "source": [
483 | "print('testPredictions:')\n",
484 | "print(testPredict)"
485 | ],
486 | "metadata": {
487 | "colab": {
488 | "base_uri": "https://localhost:8080/"
489 | },
490 | "id": "d3GE7v1LtJEG",
491 | "outputId": "b7102d9a-b9d7-4169-83b1-ad96a7e16284"
492 | },
493 | "execution_count": 21,
494 | "outputs": [
495 | {
496 | "output_type": "stream",
497 | "name": "stdout",
498 | "text": [
499 | "testPredictions:\n",
500 | "[[27.462803]\n",
501 | " [27.291517]\n",
502 | " [27.41037 ]\n",
503 | " ...\n",
504 | " [79.52366 ]\n",
505 | " [80.36231 ]\n",
506 | " [80.768425]]\n"
507 | ]
508 | }
509 | ]
510 | },
511 | {
512 | "cell_type": "code",
513 | "source": [
514 | "# export prediction and actual prices\n",
515 | "df = pd.DataFrame(data={\"prediction\": np.around(list(testPredict.reshape(-1)), decimals=2), \"test_price\": np.around(list(testPrices.reshape(-1)), decimals=2)})\n",
516 | "df.to_csv(\"lstm_result.csv\", sep=';', index=None)"
517 | ],
518 | "metadata": {
519 | "id": "ljiX4jy8tLZO"
520 | },
521 | "execution_count": 22,
522 | "outputs": []
523 | },
524 | {
525 | "cell_type": "code",
526 | "source": [
527 | "# plot the actual price, prediction in test data=red line, actual price=blue line\n",
528 | "plt.plot(testPredictPlot)\n",
529 | "plt.show()\n",
530 | "\n"
531 | ],
532 | "metadata": {
533 | "colab": {
534 | "base_uri": "https://localhost:8080/",
535 | "height": 265
536 | },
537 | "id": "XR04UYeQtQmv",
538 | "outputId": "22093f6e-8052-4784-9102-c51233f30aad"
539 | },
540 | "execution_count": 23,
541 | "outputs": [
542 | {
543 | "output_type": "display_data",
544 | "data": {
545 | "image/png": "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\n",
546 | "text/plain": [
547 | ""
548 | ]
549 | },
550 | "metadata": {
551 | "needs_background": "light"
552 | }
553 | }
554 | ]
555 | },
556 | {
557 | "cell_type": "code",
558 | "source": [
559 | ""
560 | ],
561 | "metadata": {
562 | "id": "U-y000iUtSv-"
563 | },
564 | "execution_count": null,
565 | "outputs": []
566 | }
567 | ]
568 | }
--------------------------------------------------------------------------------
/Class 03.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "id": "d5948857",
6 | "metadata": {},
7 | "source": [
8 | "# Tuple"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 1,
14 | "id": "4a4e43b0",
15 | "metadata": {},
16 | "outputs": [
17 | {
18 | "data": {
19 | "text/plain": [
20 | "(1, 2, 34, 5, 'ai')"
21 | ]
22 | },
23 | "execution_count": 1,
24 | "metadata": {},
25 | "output_type": "execute_result"
26 | }
27 | ],
28 | "source": [
29 | "tup = (1,2,34,5,'ai')\n",
30 | "tup"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 2,
36 | "id": "babadeb1",
37 | "metadata": {},
38 | "outputs": [
39 | {
40 | "data": {
41 | "text/plain": [
42 | "1"
43 | ]
44 | },
45 | "execution_count": 2,
46 | "metadata": {},
47 | "output_type": "execute_result"
48 | }
49 | ],
50 | "source": [
51 | "tup[0]"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": 3,
57 | "id": "541b2d9b",
58 | "metadata": {},
59 | "outputs": [
60 | {
61 | "data": {
62 | "text/plain": [
63 | "(2, 34)"
64 | ]
65 | },
66 | "execution_count": 3,
67 | "metadata": {},
68 | "output_type": "execute_result"
69 | }
70 | ],
71 | "source": [
72 | "tup[1:3]"
73 | ]
74 | },
75 | {
76 | "cell_type": "code",
77 | "execution_count": 4,
78 | "id": "3a4f9293",
79 | "metadata": {},
80 | "outputs": [
81 | {
82 | "ename": "TypeError",
83 | "evalue": "'tuple' object does not support item assignment",
84 | "output_type": "error",
85 | "traceback": [
86 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
87 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
88 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mtup\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'shakil'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
89 | "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
90 | ]
91 | }
92 | ],
93 | "source": [
94 | "tup[0] = 'shakil'"
95 | ]
96 | },
97 | {
98 | "cell_type": "code",
99 | "execution_count": 5,
100 | "id": "5d8b9a39",
101 | "metadata": {},
102 | "outputs": [
103 | {
104 | "data": {
105 | "text/plain": [
106 | "tuple"
107 | ]
108 | },
109 | "execution_count": 5,
110 | "metadata": {},
111 | "output_type": "execute_result"
112 | }
113 | ],
114 | "source": [
115 | "l = list(tup)\n",
116 | "type(tup)"
117 | ]
118 | },
119 | {
120 | "cell_type": "code",
121 | "execution_count": 6,
122 | "id": "e0c06cb2",
123 | "metadata": {},
124 | "outputs": [
125 | {
126 | "data": {
127 | "text/plain": [
128 | "list"
129 | ]
130 | },
131 | "execution_count": 6,
132 | "metadata": {},
133 | "output_type": "execute_result"
134 | }
135 | ],
136 | "source": [
137 | "type(l)"
138 | ]
139 | },
140 | {
141 | "cell_type": "code",
142 | "execution_count": 7,
143 | "id": "606668c3",
144 | "metadata": {},
145 | "outputs": [],
146 | "source": [
147 | "l[0] = 'shakil'"
148 | ]
149 | },
150 | {
151 | "cell_type": "code",
152 | "execution_count": 8,
153 | "id": "93e05298",
154 | "metadata": {},
155 | "outputs": [
156 | {
157 | "data": {
158 | "text/plain": [
159 | "['shakil', 2, 34, 5, 'ai']"
160 | ]
161 | },
162 | "execution_count": 8,
163 | "metadata": {},
164 | "output_type": "execute_result"
165 | }
166 | ],
167 | "source": [
168 | "l"
169 | ]
170 | },
171 | {
172 | "cell_type": "code",
173 | "execution_count": 9,
174 | "id": "f63e0c31",
175 | "metadata": {},
176 | "outputs": [],
177 | "source": [
178 | "tup2 = tuple(l)"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 10,
184 | "id": "3c04f66d",
185 | "metadata": {},
186 | "outputs": [
187 | {
188 | "data": {
189 | "text/plain": [
190 | "tuple"
191 | ]
192 | },
193 | "execution_count": 10,
194 | "metadata": {},
195 | "output_type": "execute_result"
196 | }
197 | ],
198 | "source": [
199 | "type(tup2)"
200 | ]
201 | },
202 | {
203 | "cell_type": "code",
204 | "execution_count": 11,
205 | "id": "c8534a77",
206 | "metadata": {},
207 | "outputs": [
208 | {
209 | "ename": "TypeError",
210 | "evalue": "'tuple' object does not support item assignment",
211 | "output_type": "error",
212 | "traceback": [
213 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
214 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
215 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mtup2\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'ai'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
216 | "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment"
217 | ]
218 | }
219 | ],
220 | "source": [
221 | "tup2[0] = 'ai'"
222 | ]
223 | },
224 | {
225 | "cell_type": "code",
226 | "execution_count": 12,
227 | "id": "ee88f181",
228 | "metadata": {},
229 | "outputs": [
230 | {
231 | "data": {
232 | "text/plain": [
233 | "(1, 2, 34, 5, 'ai')"
234 | ]
235 | },
236 | "execution_count": 12,
237 | "metadata": {},
238 | "output_type": "execute_result"
239 | }
240 | ],
241 | "source": [
242 | "tup"
243 | ]
244 | },
245 | {
246 | "cell_type": "code",
247 | "execution_count": 13,
248 | "id": "294a888f",
249 | "metadata": {},
250 | "outputs": [],
251 | "source": [
252 | "tup = tup+(50,)"
253 | ]
254 | },
255 | {
256 | "cell_type": "code",
257 | "execution_count": 14,
258 | "id": "66ceefdc",
259 | "metadata": {},
260 | "outputs": [
261 | {
262 | "data": {
263 | "text/plain": [
264 | "(1, 2, 34, 5, 'ai', 50)"
265 | ]
266 | },
267 | "execution_count": 14,
268 | "metadata": {},
269 | "output_type": "execute_result"
270 | }
271 | ],
272 | "source": [
273 | "tup"
274 | ]
275 | },
276 | {
277 | "cell_type": "code",
278 | "execution_count": 15,
279 | "id": "1485999a",
280 | "metadata": {},
281 | "outputs": [],
282 | "source": [
283 | "l1 = ['shakil', 2, 34, 5, 5, 'ai']\n",
284 | "t1 = ('shakil', 2, 34, 5, 5,'ai')"
285 | ]
286 | },
287 | {
288 | "cell_type": "code",
289 | "execution_count": 16,
290 | "id": "8c0ecb40",
291 | "metadata": {},
292 | "outputs": [
293 | {
294 | "data": {
295 | "text/plain": [
296 | "104"
297 | ]
298 | },
299 | "execution_count": 16,
300 | "metadata": {},
301 | "output_type": "execute_result"
302 | }
303 | ],
304 | "source": [
305 | "import sys\n",
306 | "sys.getsizeof(l1)"
307 | ]
308 | },
309 | {
310 | "cell_type": "code",
311 | "execution_count": 17,
312 | "id": "9bdc0788",
313 | "metadata": {},
314 | "outputs": [
315 | {
316 | "data": {
317 | "text/plain": [
318 | "88"
319 | ]
320 | },
321 | "execution_count": 17,
322 | "metadata": {},
323 | "output_type": "execute_result"
324 | }
325 | ],
326 | "source": [
327 | "sys.getsizeof(t1)"
328 | ]
329 | },
330 | {
331 | "cell_type": "code",
332 | "execution_count": 18,
333 | "id": "76f038d5",
334 | "metadata": {},
335 | "outputs": [
336 | {
337 | "data": {
338 | "text/plain": [
339 | "2"
340 | ]
341 | },
342 | "execution_count": 18,
343 | "metadata": {},
344 | "output_type": "execute_result"
345 | }
346 | ],
347 | "source": [
348 | "t1.count(5)"
349 | ]
350 | },
351 | {
352 | "cell_type": "code",
353 | "execution_count": 19,
354 | "id": "fd24d4a9",
355 | "metadata": {},
356 | "outputs": [
357 | {
358 | "data": {
359 | "text/plain": [
360 | "3"
361 | ]
362 | },
363 | "execution_count": 19,
364 | "metadata": {},
365 | "output_type": "execute_result"
366 | }
367 | ],
368 | "source": [
369 | "t1.index(5)"
370 | ]
371 | },
372 | {
373 | "cell_type": "code",
374 | "execution_count": 20,
375 | "id": "8505309d",
376 | "metadata": {},
377 | "outputs": [],
378 | "source": [
379 | "x = (50,)"
380 | ]
381 | },
382 | {
383 | "cell_type": "code",
384 | "execution_count": 21,
385 | "id": "a8140819",
386 | "metadata": {},
387 | "outputs": [
388 | {
389 | "data": {
390 | "text/plain": [
391 | "tuple"
392 | ]
393 | },
394 | "execution_count": 21,
395 | "metadata": {},
396 | "output_type": "execute_result"
397 | }
398 | ],
399 | "source": [
400 | "type(x)"
401 | ]
402 | },
403 | {
404 | "cell_type": "code",
405 | "execution_count": 22,
406 | "id": "fee44542",
407 | "metadata": {},
408 | "outputs": [],
409 | "source": [
410 | "y = [50]"
411 | ]
412 | },
413 | {
414 | "cell_type": "code",
415 | "execution_count": 23,
416 | "id": "f6d1eb10",
417 | "metadata": {},
418 | "outputs": [
419 | {
420 | "data": {
421 | "text/plain": [
422 | "list"
423 | ]
424 | },
425 | "execution_count": 23,
426 | "metadata": {},
427 | "output_type": "execute_result"
428 | }
429 | ],
430 | "source": [
431 | "type(y)"
432 | ]
433 | },
434 | {
435 | "cell_type": "code",
436 | "execution_count": 21,
437 | "id": "efb2b242",
438 | "metadata": {},
439 | "outputs": [
440 | {
441 | "data": {
442 | "image/png": "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\n",
443 | "text/plain": [
444 | ""
445 | ]
446 | },
447 | "metadata": {
448 | "needs_background": "light"
449 | },
450 | "output_type": "display_data"
451 | }
452 | ],
453 | "source": [
454 | "import matplotlib.pyplot as plt\n",
455 | "y = [35, 25, 25, 15]\n",
456 | "z = [1,2,3,4]\n",
457 | "plt.bar(y,z)\n",
458 | "plt.show() "
459 | ]
460 | },
461 | {
462 | "cell_type": "markdown",
463 | "id": "ec506839",
464 | "metadata": {},
465 | "source": [
466 | "# Set"
467 | ]
468 | },
469 | {
470 | "cell_type": "code",
471 | "execution_count": 1,
472 | "id": "a5edc689",
473 | "metadata": {},
474 | "outputs": [
475 | {
476 | "ename": "TypeError",
477 | "evalue": "'set' object is not subscriptable",
478 | "output_type": "error",
479 | "traceback": [
480 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
481 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
482 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0ms1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m6\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m7\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0ms1\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;31m#set() -> list(s1)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
483 | "\u001b[1;31mTypeError\u001b[0m: 'set' object is not subscriptable"
484 | ]
485 | }
486 | ],
487 | "source": [
488 | "s1 = {1,2,4,6,7,10}\n",
489 | "s1[2] #set() -> list(s1)"
490 | ]
491 | },
492 | {
493 | "cell_type": "code",
494 | "execution_count": 25,
495 | "id": "aaee06b0",
496 | "metadata": {},
497 | "outputs": [
498 | {
499 | "data": {
500 | "text/plain": [
501 | "{1, 2, 4, 6, 7, 10}"
502 | ]
503 | },
504 | "execution_count": 25,
505 | "metadata": {},
506 | "output_type": "execute_result"
507 | }
508 | ],
509 | "source": [
510 | "s1"
511 | ]
512 | },
513 | {
514 | "cell_type": "code",
515 | "execution_count": 4,
516 | "id": "29cd0bfc",
517 | "metadata": {},
518 | "outputs": [
519 | {
520 | "name": "stdout",
521 | "output_type": "stream",
522 | "text": [
523 | "1\n",
524 | "2\n",
525 | "4\n",
526 | "6\n",
527 | "7\n",
528 | "10\n"
529 | ]
530 | }
531 | ],
532 | "source": [
533 | "for N in s1:\n",
534 | " print(N)"
535 | ]
536 | },
537 | {
538 | "cell_type": "code",
539 | "execution_count": 27,
540 | "id": "4275fec6",
541 | "metadata": {},
542 | "outputs": [
543 | {
544 | "name": "stdout",
545 | "output_type": "stream",
546 | "text": [
547 | "No\n"
548 | ]
549 | }
550 | ],
551 | "source": [
552 | "if 12 in s1:\n",
553 | " print('OK')\n",
554 | "else:\n",
555 | " print('No')"
556 | ]
557 | },
558 | {
559 | "cell_type": "code",
560 | "execution_count": 28,
561 | "id": "850a86c7",
562 | "metadata": {},
563 | "outputs": [
564 | {
565 | "data": {
566 | "text/plain": [
567 | "{1, 2, 4, 6, 7, 10}"
568 | ]
569 | },
570 | "execution_count": 28,
571 | "metadata": {},
572 | "output_type": "execute_result"
573 | }
574 | ],
575 | "source": [
576 | "s1 = {1,2,2,4,6,7,10}\n",
577 | "s1"
578 | ]
579 | },
580 | {
581 | "cell_type": "code",
582 | "execution_count": 29,
583 | "id": "7e336e68",
584 | "metadata": {},
585 | "outputs": [],
586 | "source": [
587 | "s1.add('Rajen')"
588 | ]
589 | },
590 | {
591 | "cell_type": "code",
592 | "execution_count": 30,
593 | "id": "d1d253be",
594 | "metadata": {},
595 | "outputs": [
596 | {
597 | "data": {
598 | "text/plain": [
599 | "{1, 10, 2, 4, 6, 7, 'Rajen'}"
600 | ]
601 | },
602 | "execution_count": 30,
603 | "metadata": {},
604 | "output_type": "execute_result"
605 | }
606 | ],
607 | "source": [
608 | "s1"
609 | ]
610 | },
611 | {
612 | "cell_type": "code",
613 | "execution_count": 31,
614 | "id": "55be9338",
615 | "metadata": {},
616 | "outputs": [],
617 | "source": [
618 | "l2 = list(s1)"
619 | ]
620 | },
621 | {
622 | "cell_type": "code",
623 | "execution_count": 32,
624 | "id": "7decec04",
625 | "metadata": {},
626 | "outputs": [
627 | {
628 | "data": {
629 | "text/plain": [
630 | "[1, 2, 4, 6, 7, 10, 'Rajen']"
631 | ]
632 | },
633 | "execution_count": 32,
634 | "metadata": {},
635 | "output_type": "execute_result"
636 | }
637 | ],
638 | "source": [
639 | "l2"
640 | ]
641 | },
642 | {
643 | "cell_type": "code",
644 | "execution_count": 33,
645 | "id": "4cb0cb49",
646 | "metadata": {},
647 | "outputs": [],
648 | "source": [
649 | "l2.append('TAREQ')"
650 | ]
651 | },
652 | {
653 | "cell_type": "code",
654 | "execution_count": 34,
655 | "id": "40f8b8bb",
656 | "metadata": {},
657 | "outputs": [
658 | {
659 | "data": {
660 | "text/plain": [
661 | "[1, 2, 4, 6, 7, 10, 'Rajen', 'TAREQ']"
662 | ]
663 | },
664 | "execution_count": 34,
665 | "metadata": {},
666 | "output_type": "execute_result"
667 | }
668 | ],
669 | "source": [
670 | "l2"
671 | ]
672 | },
673 | {
674 | "cell_type": "code",
675 | "execution_count": 35,
676 | "id": "bdcd3950",
677 | "metadata": {},
678 | "outputs": [
679 | {
680 | "data": {
681 | "text/plain": [
682 | "[1, 2, 4, 6, 7, 10, 'Rajen', 'TAREQ']"
683 | ]
684 | },
685 | "execution_count": 35,
686 | "metadata": {},
687 | "output_type": "execute_result"
688 | }
689 | ],
690 | "source": [
691 | "l2"
692 | ]
693 | },
694 | {
695 | "cell_type": "code",
696 | "execution_count": 36,
697 | "id": "34391777",
698 | "metadata": {},
699 | "outputs": [],
700 | "source": [
701 | "l2.insert(3,'ai')"
702 | ]
703 | },
704 | {
705 | "cell_type": "code",
706 | "execution_count": 37,
707 | "id": "eb10c8df",
708 | "metadata": {},
709 | "outputs": [
710 | {
711 | "data": {
712 | "text/plain": [
713 | "[1, 2, 4, 'ai', 6, 7, 10, 'Rajen', 'TAREQ']"
714 | ]
715 | },
716 | "execution_count": 37,
717 | "metadata": {},
718 | "output_type": "execute_result"
719 | }
720 | ],
721 | "source": [
722 | "l2"
723 | ]
724 | },
725 | {
726 | "cell_type": "code",
727 | "execution_count": 38,
728 | "id": "1c00561a",
729 | "metadata": {},
730 | "outputs": [],
731 | "source": [
732 | "l2.append(15)"
733 | ]
734 | },
735 | {
736 | "cell_type": "code",
737 | "execution_count": 39,
738 | "id": "2c27606f",
739 | "metadata": {},
740 | "outputs": [
741 | {
742 | "data": {
743 | "text/plain": [
744 | "[1, 2, 4, 'ai', 6, 7, 10, 'Rajen', 'TAREQ', 15]"
745 | ]
746 | },
747 | "execution_count": 39,
748 | "metadata": {},
749 | "output_type": "execute_result"
750 | }
751 | ],
752 | "source": [
753 | "l2"
754 | ]
755 | },
756 | {
757 | "cell_type": "code",
758 | "execution_count": 40,
759 | "id": "8d1aa079",
760 | "metadata": {},
761 | "outputs": [],
762 | "source": [
763 | "l5 = [2,8,2,3]"
764 | ]
765 | },
766 | {
767 | "cell_type": "code",
768 | "execution_count": 41,
769 | "id": "37c15ae3",
770 | "metadata": {},
771 | "outputs": [],
772 | "source": [
773 | "l5.append(1)"
774 | ]
775 | },
776 | {
777 | "cell_type": "code",
778 | "execution_count": 42,
779 | "id": "f3ee90c7",
780 | "metadata": {},
781 | "outputs": [
782 | {
783 | "data": {
784 | "text/plain": [
785 | "[2, 8, 2, 3, 1]"
786 | ]
787 | },
788 | "execution_count": 42,
789 | "metadata": {},
790 | "output_type": "execute_result"
791 | }
792 | ],
793 | "source": [
794 | "l5"
795 | ]
796 | },
797 | {
798 | "cell_type": "code",
799 | "execution_count": 43,
800 | "id": "de87dbfd",
801 | "metadata": {},
802 | "outputs": [],
803 | "source": [
804 | "l5.insert(3,40)"
805 | ]
806 | },
807 | {
808 | "cell_type": "code",
809 | "execution_count": 44,
810 | "id": "3da51232",
811 | "metadata": {},
812 | "outputs": [
813 | {
814 | "data": {
815 | "text/plain": [
816 | "[2, 8, 2, 40, 3, 1]"
817 | ]
818 | },
819 | "execution_count": 44,
820 | "metadata": {},
821 | "output_type": "execute_result"
822 | }
823 | ],
824 | "source": [
825 | "l5"
826 | ]
827 | },
828 | {
829 | "cell_type": "code",
830 | "execution_count": 45,
831 | "id": "5c13a6d9",
832 | "metadata": {
833 | "scrolled": true
834 | },
835 | "outputs": [
836 | {
837 | "data": {
838 | "text/plain": [
839 | "728"
840 | ]
841 | },
842 | "execution_count": 45,
843 | "metadata": {},
844 | "output_type": "execute_result"
845 | }
846 | ],
847 | "source": [
848 | "l1 = ['shakil', 2, 34, 5, 5, 'ai']\n",
849 | "t1 = ('shakil', 2, 34, 5, 5,'ai')\n",
850 | "s1 = {'shakil', 2, 34, 5, 5,'ai'}\n",
851 | "\n",
852 | "sys.getsizeof(s1)"
853 | ]
854 | },
855 | {
856 | "cell_type": "code",
857 | "execution_count": 46,
858 | "id": "f15e7534",
859 | "metadata": {},
860 | "outputs": [
861 | {
862 | "data": {
863 | "text/plain": [
864 | "{2, 34, 5, 'ai', 'shakil'}"
865 | ]
866 | },
867 | "execution_count": 46,
868 | "metadata": {},
869 | "output_type": "execute_result"
870 | }
871 | ],
872 | "source": [
873 | "s1"
874 | ]
875 | },
876 | {
877 | "cell_type": "code",
878 | "execution_count": 47,
879 | "id": "517aef7d",
880 | "metadata": {},
881 | "outputs": [],
882 | "source": [
883 | "s2 = {30,'ai'}\n",
884 | "\n",
885 | "s1.update(s2)"
886 | ]
887 | },
888 | {
889 | "cell_type": "code",
890 | "execution_count": 48,
891 | "id": "cb1c1e79",
892 | "metadata": {},
893 | "outputs": [
894 | {
895 | "data": {
896 | "text/plain": [
897 | "{2, 30, 34, 5, 'ai', 'shakil'}"
898 | ]
899 | },
900 | "execution_count": 48,
901 | "metadata": {},
902 | "output_type": "execute_result"
903 | }
904 | ],
905 | "source": [
906 | "s1"
907 | ]
908 | },
909 | {
910 | "cell_type": "code",
911 | "execution_count": 49,
912 | "id": "f6f1c8d1",
913 | "metadata": {},
914 | "outputs": [
915 | {
916 | "name": "stdout",
917 | "output_type": "stream",
918 | "text": [
919 | "ok\n"
920 | ]
921 | }
922 | ],
923 | "source": [
924 | "if 'ai' in s1:\n",
925 | " print('ok')"
926 | ]
927 | },
928 | {
929 | "cell_type": "code",
930 | "execution_count": 50,
931 | "id": "ca129805",
932 | "metadata": {},
933 | "outputs": [],
934 | "source": [
935 | "#set operation\n",
936 | "\n",
937 | "s2 = s2.union(s1)"
938 | ]
939 | },
940 | {
941 | "cell_type": "code",
942 | "execution_count": 51,
943 | "id": "9313c7a7",
944 | "metadata": {},
945 | "outputs": [
946 | {
947 | "data": {
948 | "text/plain": [
949 | "{2, 30, 34, 5, 'ai', 'shakil'}"
950 | ]
951 | },
952 | "execution_count": 51,
953 | "metadata": {},
954 | "output_type": "execute_result"
955 | }
956 | ],
957 | "source": [
958 | "s2"
959 | ]
960 | },
961 | {
962 | "cell_type": "code",
963 | "execution_count": 52,
964 | "id": "420f0260",
965 | "metadata": {},
966 | "outputs": [],
967 | "source": [
968 | "s3 = {5,'ai',10}"
969 | ]
970 | },
971 | {
972 | "cell_type": "code",
973 | "execution_count": 53,
974 | "id": "209c260f",
975 | "metadata": {},
976 | "outputs": [],
977 | "source": [
978 | "s2 = s2.intersection(s3)"
979 | ]
980 | },
981 | {
982 | "cell_type": "code",
983 | "execution_count": 54,
984 | "id": "1cedb34c",
985 | "metadata": {},
986 | "outputs": [
987 | {
988 | "data": {
989 | "text/plain": [
990 | "{5, 'ai'}"
991 | ]
992 | },
993 | "execution_count": 54,
994 | "metadata": {},
995 | "output_type": "execute_result"
996 | }
997 | ],
998 | "source": [
999 | "s2"
1000 | ]
1001 | },
1002 | {
1003 | "cell_type": "code",
1004 | "execution_count": 55,
1005 | "id": "debd7c2b",
1006 | "metadata": {},
1007 | "outputs": [
1008 | {
1009 | "data": {
1010 | "text/plain": [
1011 | "{10, 2, 30, 34, 5, 'ai', 'shakil'}"
1012 | ]
1013 | },
1014 | "execution_count": 55,
1015 | "metadata": {},
1016 | "output_type": "execute_result"
1017 | }
1018 | ],
1019 | "source": [
1020 | "s1 | s3 #union sign"
1021 | ]
1022 | },
1023 | {
1024 | "cell_type": "code",
1025 | "execution_count": 56,
1026 | "id": "46b86dd4",
1027 | "metadata": {},
1028 | "outputs": [
1029 | {
1030 | "data": {
1031 | "text/plain": [
1032 | "{5, 'ai'}"
1033 | ]
1034 | },
1035 | "execution_count": 56,
1036 | "metadata": {},
1037 | "output_type": "execute_result"
1038 | }
1039 | ],
1040 | "source": [
1041 | "s2"
1042 | ]
1043 | },
1044 | {
1045 | "cell_type": "code",
1046 | "execution_count": 57,
1047 | "id": "c95c4a64",
1048 | "metadata": {},
1049 | "outputs": [
1050 | {
1051 | "data": {
1052 | "text/plain": [
1053 | "'ai'"
1054 | ]
1055 | },
1056 | "execution_count": 57,
1057 | "metadata": {},
1058 | "output_type": "execute_result"
1059 | }
1060 | ],
1061 | "source": [
1062 | "s2.pop()"
1063 | ]
1064 | },
1065 | {
1066 | "cell_type": "code",
1067 | "execution_count": 58,
1068 | "id": "b09d8d58",
1069 | "metadata": {},
1070 | "outputs": [
1071 | {
1072 | "data": {
1073 | "text/plain": [
1074 | "{5}"
1075 | ]
1076 | },
1077 | "execution_count": 58,
1078 | "metadata": {},
1079 | "output_type": "execute_result"
1080 | }
1081 | ],
1082 | "source": [
1083 | "s2"
1084 | ]
1085 | },
1086 | {
1087 | "cell_type": "code",
1088 | "execution_count": 59,
1089 | "id": "e342f7a9",
1090 | "metadata": {},
1091 | "outputs": [],
1092 | "source": [
1093 | "s2.clear()"
1094 | ]
1095 | },
1096 | {
1097 | "cell_type": "code",
1098 | "execution_count": 60,
1099 | "id": "d5a9d5d0",
1100 | "metadata": {},
1101 | "outputs": [
1102 | {
1103 | "data": {
1104 | "text/plain": [
1105 | "set()"
1106 | ]
1107 | },
1108 | "execution_count": 60,
1109 | "metadata": {},
1110 | "output_type": "execute_result"
1111 | }
1112 | ],
1113 | "source": [
1114 | "s2"
1115 | ]
1116 | },
1117 | {
1118 | "cell_type": "markdown",
1119 | "id": "a3b893e1",
1120 | "metadata": {},
1121 | "source": [
1122 | "# Array"
1123 | ]
1124 | },
1125 | {
1126 | "cell_type": "code",
1127 | "execution_count": 61,
1128 | "id": "b58c6422",
1129 | "metadata": {},
1130 | "outputs": [],
1131 | "source": [
1132 | "l4 = ['all',4,5,True]"
1133 | ]
1134 | },
1135 | {
1136 | "cell_type": "code",
1137 | "execution_count": 62,
1138 | "id": "99803fc6",
1139 | "metadata": {},
1140 | "outputs": [],
1141 | "source": [
1142 | "import array as arr\n",
1143 | "\n",
1144 | "a1 = arr.array('f',[1,2,3,1.5])"
1145 | ]
1146 | },
1147 | {
1148 | "cell_type": "code",
1149 | "execution_count": 63,
1150 | "id": "a6a0f77a",
1151 | "metadata": {},
1152 | "outputs": [
1153 | {
1154 | "data": {
1155 | "text/plain": [
1156 | "array('f', [1.0, 2.0, 3.0, 1.5])"
1157 | ]
1158 | },
1159 | "execution_count": 63,
1160 | "metadata": {},
1161 | "output_type": "execute_result"
1162 | }
1163 | ],
1164 | "source": [
1165 | "a1"
1166 | ]
1167 | },
1168 | {
1169 | "cell_type": "code",
1170 | "execution_count": 64,
1171 | "id": "4690fe71",
1172 | "metadata": {},
1173 | "outputs": [],
1174 | "source": [
1175 | "a1.insert(4,10)"
1176 | ]
1177 | },
1178 | {
1179 | "cell_type": "code",
1180 | "execution_count": 65,
1181 | "id": "8dc206b8",
1182 | "metadata": {},
1183 | "outputs": [
1184 | {
1185 | "data": {
1186 | "text/plain": [
1187 | "array('f', [1.0, 2.0, 3.0, 1.5, 10.0])"
1188 | ]
1189 | },
1190 | "execution_count": 65,
1191 | "metadata": {},
1192 | "output_type": "execute_result"
1193 | }
1194 | ],
1195 | "source": [
1196 | "a1"
1197 | ]
1198 | },
1199 | {
1200 | "cell_type": "code",
1201 | "execution_count": 66,
1202 | "id": "85cfe95d",
1203 | "metadata": {},
1204 | "outputs": [],
1205 | "source": [
1206 | "a1.remove(10)"
1207 | ]
1208 | },
1209 | {
1210 | "cell_type": "code",
1211 | "execution_count": 67,
1212 | "id": "d7b59a65",
1213 | "metadata": {},
1214 | "outputs": [
1215 | {
1216 | "data": {
1217 | "text/plain": [
1218 | "array('f', [1.0, 2.0, 3.0, 1.5])"
1219 | ]
1220 | },
1221 | "execution_count": 67,
1222 | "metadata": {},
1223 | "output_type": "execute_result"
1224 | }
1225 | ],
1226 | "source": [
1227 | "a1"
1228 | ]
1229 | },
1230 | {
1231 | "cell_type": "markdown",
1232 | "id": "a175aed8",
1233 | "metadata": {},
1234 | "source": [
1235 | "# Numpy"
1236 | ]
1237 | },
1238 | {
1239 | "cell_type": "code",
1240 | "execution_count": 68,
1241 | "id": "cc2c77de",
1242 | "metadata": {},
1243 | "outputs": [
1244 | {
1245 | "data": {
1246 | "text/plain": [
1247 | "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
1248 | ]
1249 | },
1250 | "execution_count": 68,
1251 | "metadata": {},
1252 | "output_type": "execute_result"
1253 | }
1254 | ],
1255 | "source": [
1256 | "import numpy as np\n",
1257 | "a2 = np.arange(10)\n",
1258 | "a2"
1259 | ]
1260 | },
1261 | {
1262 | "cell_type": "code",
1263 | "execution_count": 69,
1264 | "id": "862b8940",
1265 | "metadata": {},
1266 | "outputs": [
1267 | {
1268 | "data": {
1269 | "text/plain": [
1270 | "numpy.ndarray"
1271 | ]
1272 | },
1273 | "execution_count": 69,
1274 | "metadata": {},
1275 | "output_type": "execute_result"
1276 | }
1277 | ],
1278 | "source": [
1279 | "type(a2)"
1280 | ]
1281 | },
1282 | {
1283 | "cell_type": "code",
1284 | "execution_count": 70,
1285 | "id": "79f738d2",
1286 | "metadata": {},
1287 | "outputs": [
1288 | {
1289 | "data": {
1290 | "text/plain": [
1291 | "array([[[ 0, 1],\n",
1292 | " [ 2, 3],\n",
1293 | " [ 4, 5]],\n",
1294 | "\n",
1295 | " [[ 6, 7],\n",
1296 | " [ 8, 9],\n",
1297 | " [10, 11]]])"
1298 | ]
1299 | },
1300 | "execution_count": 70,
1301 | "metadata": {},
1302 | "output_type": "execute_result"
1303 | }
1304 | ],
1305 | "source": [
1306 | "a3 = np.arange(12).reshape(2,3,2)\n",
1307 | "a3"
1308 | ]
1309 | },
1310 | {
1311 | "cell_type": "code",
1312 | "execution_count": 71,
1313 | "id": "3a0eb26f",
1314 | "metadata": {},
1315 | "outputs": [
1316 | {
1317 | "data": {
1318 | "text/plain": [
1319 | "3"
1320 | ]
1321 | },
1322 | "execution_count": 71,
1323 | "metadata": {},
1324 | "output_type": "execute_result"
1325 | }
1326 | ],
1327 | "source": [
1328 | "a3.ndim"
1329 | ]
1330 | },
1331 | {
1332 | "cell_type": "markdown",
1333 | "id": "4e5edc97",
1334 | "metadata": {},
1335 | "source": [
1336 | "# Dictionary"
1337 | ]
1338 | },
1339 | {
1340 | "cell_type": "code",
1341 | "execution_count": 72,
1342 | "id": "ec0b1abd",
1343 | "metadata": {},
1344 | "outputs": [],
1345 | "source": [
1346 | "d1 = {\n",
1347 | " 'name':['Touhidul Islam','HASIBUL'],\n",
1348 | " 'age' : [25],\n",
1349 | " 'varsity' : ['EWU','VARSITY']\n",
1350 | "}"
1351 | ]
1352 | },
1353 | {
1354 | "cell_type": "code",
1355 | "execution_count": 73,
1356 | "id": "e1607d5f",
1357 | "metadata": {},
1358 | "outputs": [
1359 | {
1360 | "data": {
1361 | "text/plain": [
1362 | "dict"
1363 | ]
1364 | },
1365 | "execution_count": 73,
1366 | "metadata": {},
1367 | "output_type": "execute_result"
1368 | }
1369 | ],
1370 | "source": [
1371 | "type(d1)"
1372 | ]
1373 | },
1374 | {
1375 | "cell_type": "code",
1376 | "execution_count": 74,
1377 | "id": "4367c975",
1378 | "metadata": {},
1379 | "outputs": [
1380 | {
1381 | "data": {
1382 | "text/plain": [
1383 | "['Touhidul Islam', 'HASIBUL']"
1384 | ]
1385 | },
1386 | "execution_count": 74,
1387 | "metadata": {},
1388 | "output_type": "execute_result"
1389 | }
1390 | ],
1391 | "source": [
1392 | "d1['name']"
1393 | ]
1394 | },
1395 | {
1396 | "cell_type": "code",
1397 | "execution_count": 75,
1398 | "id": "50c5c8dd",
1399 | "metadata": {},
1400 | "outputs": [
1401 | {
1402 | "data": {
1403 | "text/plain": [
1404 | "[25]"
1405 | ]
1406 | },
1407 | "execution_count": 75,
1408 | "metadata": {},
1409 | "output_type": "execute_result"
1410 | }
1411 | ],
1412 | "source": [
1413 | "d1['age']"
1414 | ]
1415 | },
1416 | {
1417 | "cell_type": "code",
1418 | "execution_count": 76,
1419 | "id": "cd7dfb85",
1420 | "metadata": {},
1421 | "outputs": [
1422 | {
1423 | "data": {
1424 | "text/plain": [
1425 | "['EWU', 'VARSITY']"
1426 | ]
1427 | },
1428 | "execution_count": 76,
1429 | "metadata": {},
1430 | "output_type": "execute_result"
1431 | }
1432 | ],
1433 | "source": [
1434 | "d1['varsity']"
1435 | ]
1436 | },
1437 | {
1438 | "cell_type": "code",
1439 | "execution_count": 77,
1440 | "id": "309e3f28",
1441 | "metadata": {},
1442 | "outputs": [
1443 | {
1444 | "data": {
1445 | "text/plain": [
1446 | "dict_keys(['name', 'age', 'varsity'])"
1447 | ]
1448 | },
1449 | "execution_count": 77,
1450 | "metadata": {},
1451 | "output_type": "execute_result"
1452 | }
1453 | ],
1454 | "source": [
1455 | "d1.keys()"
1456 | ]
1457 | },
1458 | {
1459 | "cell_type": "code",
1460 | "execution_count": 78,
1461 | "id": "7e39164c",
1462 | "metadata": {},
1463 | "outputs": [
1464 | {
1465 | "data": {
1466 | "text/plain": [
1467 | "dict_values([['Touhidul Islam', 'HASIBUL'], [25], ['EWU', 'VARSITY']])"
1468 | ]
1469 | },
1470 | "execution_count": 78,
1471 | "metadata": {},
1472 | "output_type": "execute_result"
1473 | }
1474 | ],
1475 | "source": [
1476 | "d1.values()"
1477 | ]
1478 | },
1479 | {
1480 | "cell_type": "code",
1481 | "execution_count": 79,
1482 | "id": "b569e7cc",
1483 | "metadata": {},
1484 | "outputs": [],
1485 | "source": [
1486 | "#change\n",
1487 | "d1['age'] = [25,26]"
1488 | ]
1489 | },
1490 | {
1491 | "cell_type": "code",
1492 | "execution_count": 80,
1493 | "id": "e4cb1c76",
1494 | "metadata": {},
1495 | "outputs": [
1496 | {
1497 | "data": {
1498 | "text/plain": [
1499 | "{'name': ['Touhidul Islam', 'HASIBUL'],\n",
1500 | " 'age': [25, 26],\n",
1501 | " 'varsity': ['EWU', 'VARSITY']}"
1502 | ]
1503 | },
1504 | "execution_count": 80,
1505 | "metadata": {},
1506 | "output_type": "execute_result"
1507 | }
1508 | ],
1509 | "source": [
1510 | "d1"
1511 | ]
1512 | },
1513 | {
1514 | "cell_type": "code",
1515 | "execution_count": 81,
1516 | "id": "8dc0235d",
1517 | "metadata": {},
1518 | "outputs": [],
1519 | "source": [
1520 | "d1.update({'age':[27,28]})"
1521 | ]
1522 | },
1523 | {
1524 | "cell_type": "code",
1525 | "execution_count": 82,
1526 | "id": "cddb169a",
1527 | "metadata": {},
1528 | "outputs": [
1529 | {
1530 | "data": {
1531 | "text/plain": [
1532 | "{'name': ['Touhidul Islam', 'HASIBUL'],\n",
1533 | " 'age': [27, 28],\n",
1534 | " 'varsity': ['EWU', 'VARSITY']}"
1535 | ]
1536 | },
1537 | "execution_count": 82,
1538 | "metadata": {},
1539 | "output_type": "execute_result"
1540 | }
1541 | ],
1542 | "source": [
1543 | "d1"
1544 | ]
1545 | },
1546 | {
1547 | "cell_type": "code",
1548 | "execution_count": 83,
1549 | "id": "26d79d2c",
1550 | "metadata": {},
1551 | "outputs": [],
1552 | "source": [
1553 | "d1['dept'] = ['cse','eee'] #ADD"
1554 | ]
1555 | },
1556 | {
1557 | "cell_type": "code",
1558 | "execution_count": 84,
1559 | "id": "122051d1",
1560 | "metadata": {},
1561 | "outputs": [
1562 | {
1563 | "data": {
1564 | "text/plain": [
1565 | "{'name': ['Touhidul Islam', 'HASIBUL'],\n",
1566 | " 'age': [27, 28],\n",
1567 | " 'varsity': ['EWU', 'VARSITY'],\n",
1568 | " 'dept': ['cse', 'eee']}"
1569 | ]
1570 | },
1571 | "execution_count": 84,
1572 | "metadata": {},
1573 | "output_type": "execute_result"
1574 | }
1575 | ],
1576 | "source": [
1577 | "d1"
1578 | ]
1579 | },
1580 | {
1581 | "cell_type": "code",
1582 | "execution_count": 85,
1583 | "id": "f0d45fb6",
1584 | "metadata": {},
1585 | "outputs": [
1586 | {
1587 | "data": {
1588 | "text/plain": [
1589 | "[27, 28]"
1590 | ]
1591 | },
1592 | "execution_count": 85,
1593 | "metadata": {},
1594 | "output_type": "execute_result"
1595 | }
1596 | ],
1597 | "source": [
1598 | "d1.pop('age') #delete "
1599 | ]
1600 | },
1601 | {
1602 | "cell_type": "code",
1603 | "execution_count": 86,
1604 | "id": "ca22d606",
1605 | "metadata": {},
1606 | "outputs": [
1607 | {
1608 | "data": {
1609 | "text/plain": [
1610 | "{'name': ['Touhidul Islam', 'HASIBUL'],\n",
1611 | " 'varsity': ['EWU', 'VARSITY'],\n",
1612 | " 'dept': ['cse', 'eee']}"
1613 | ]
1614 | },
1615 | "execution_count": 86,
1616 | "metadata": {},
1617 | "output_type": "execute_result"
1618 | }
1619 | ],
1620 | "source": [
1621 | "d1"
1622 | ]
1623 | },
1624 | {
1625 | "cell_type": "markdown",
1626 | "id": "60964500",
1627 | "metadata": {},
1628 | "source": [
1629 | "# Data Frame"
1630 | ]
1631 | },
1632 | {
1633 | "cell_type": "code",
1634 | "execution_count": 87,
1635 | "id": "729db2e7",
1636 | "metadata": {},
1637 | "outputs": [
1638 | {
1639 | "data": {
1640 | "text/plain": [
1641 | "{'name': ['Touhidul Islam', 'HASIBUL'],\n",
1642 | " 'varsity': ['EWU', 'VARSITY'],\n",
1643 | " 'dept': ['cse', 'eee']}"
1644 | ]
1645 | },
1646 | "execution_count": 87,
1647 | "metadata": {},
1648 | "output_type": "execute_result"
1649 | }
1650 | ],
1651 | "source": [
1652 | "d1"
1653 | ]
1654 | },
1655 | {
1656 | "cell_type": "code",
1657 | "execution_count": 88,
1658 | "id": "d70372a3",
1659 | "metadata": {},
1660 | "outputs": [],
1661 | "source": [
1662 | "#pandas\n",
1663 | "#vaex\n",
1664 | "import pandas as pd\n",
1665 | "\n",
1666 | "df = pd.DataFrame(d1)"
1667 | ]
1668 | },
1669 | {
1670 | "cell_type": "code",
1671 | "execution_count": 89,
1672 | "id": "aa3ead44",
1673 | "metadata": {},
1674 | "outputs": [
1675 | {
1676 | "data": {
1677 | "text/html": [
1678 | "\n",
1679 | "\n",
1692 | "
\n",
1693 | " \n",
1694 | " \n",
1695 | " | \n",
1696 | " name | \n",
1697 | " varsity | \n",
1698 | " dept | \n",
1699 | "
\n",
1700 | " \n",
1701 | " \n",
1702 | " \n",
1703 | " | 0 | \n",
1704 | " Touhidul Islam | \n",
1705 | " EWU | \n",
1706 | " cse | \n",
1707 | "
\n",
1708 | " \n",
1709 | " | 1 | \n",
1710 | " HASIBUL | \n",
1711 | " VARSITY | \n",
1712 | " eee | \n",
1713 | "
\n",
1714 | " \n",
1715 | "
\n",
1716 | "
"
1717 | ],
1718 | "text/plain": [
1719 | " name varsity dept\n",
1720 | "0 Touhidul Islam EWU cse\n",
1721 | "1 HASIBUL VARSITY eee"
1722 | ]
1723 | },
1724 | "execution_count": 89,
1725 | "metadata": {},
1726 | "output_type": "execute_result"
1727 | }
1728 | ],
1729 | "source": [
1730 | "df"
1731 | ]
1732 | },
1733 | {
1734 | "cell_type": "code",
1735 | "execution_count": 90,
1736 | "id": "570b84c5",
1737 | "metadata": {},
1738 | "outputs": [
1739 | {
1740 | "data": {
1741 | "text/plain": [
1742 | "0 Touhidul Islam\n",
1743 | "1 HASIBUL\n",
1744 | "Name: name, dtype: object"
1745 | ]
1746 | },
1747 | "execution_count": 90,
1748 | "metadata": {},
1749 | "output_type": "execute_result"
1750 | }
1751 | ],
1752 | "source": [
1753 | "df['name']"
1754 | ]
1755 | },
1756 | {
1757 | "cell_type": "code",
1758 | "execution_count": 91,
1759 | "id": "5b490d7d",
1760 | "metadata": {},
1761 | "outputs": [],
1762 | "source": [
1763 | "df['my'] = [1,2]"
1764 | ]
1765 | },
1766 | {
1767 | "cell_type": "code",
1768 | "execution_count": 92,
1769 | "id": "7e1a610b",
1770 | "metadata": {},
1771 | "outputs": [
1772 | {
1773 | "data": {
1774 | "text/html": [
1775 | "\n",
1776 | "\n",
1789 | "
\n",
1790 | " \n",
1791 | " \n",
1792 | " | \n",
1793 | " name | \n",
1794 | " varsity | \n",
1795 | " dept | \n",
1796 | " my | \n",
1797 | "
\n",
1798 | " \n",
1799 | " \n",
1800 | " \n",
1801 | " | 0 | \n",
1802 | " Touhidul Islam | \n",
1803 | " EWU | \n",
1804 | " cse | \n",
1805 | " 1 | \n",
1806 | "
\n",
1807 | " \n",
1808 | " | 1 | \n",
1809 | " HASIBUL | \n",
1810 | " VARSITY | \n",
1811 | " eee | \n",
1812 | " 2 | \n",
1813 | "
\n",
1814 | " \n",
1815 | "
\n",
1816 | "
"
1817 | ],
1818 | "text/plain": [
1819 | " name varsity dept my\n",
1820 | "0 Touhidul Islam EWU cse 1\n",
1821 | "1 HASIBUL VARSITY eee 2"
1822 | ]
1823 | },
1824 | "execution_count": 92,
1825 | "metadata": {},
1826 | "output_type": "execute_result"
1827 | }
1828 | ],
1829 | "source": [
1830 | "df"
1831 | ]
1832 | },
1833 | {
1834 | "cell_type": "code",
1835 | "execution_count": 93,
1836 | "id": "52f5955a",
1837 | "metadata": {},
1838 | "outputs": [
1839 | {
1840 | "data": {
1841 | "text/html": [
1842 | "\n",
1843 | "\n",
1856 | "
\n",
1857 | " \n",
1858 | " \n",
1859 | " | \n",
1860 | " name | \n",
1861 | " varsity | \n",
1862 | " dept | \n",
1863 | "
\n",
1864 | " \n",
1865 | " \n",
1866 | " \n",
1867 | " | 0 | \n",
1868 | " Touhidul Islam | \n",
1869 | " EWU | \n",
1870 | " cse | \n",
1871 | "
\n",
1872 | " \n",
1873 | " | 1 | \n",
1874 | " HASIBUL | \n",
1875 | " VARSITY | \n",
1876 | " eee | \n",
1877 | "
\n",
1878 | " \n",
1879 | "
\n",
1880 | "
"
1881 | ],
1882 | "text/plain": [
1883 | " name varsity dept\n",
1884 | "0 Touhidul Islam EWU cse\n",
1885 | "1 HASIBUL VARSITY eee"
1886 | ]
1887 | },
1888 | "execution_count": 93,
1889 | "metadata": {},
1890 | "output_type": "execute_result"
1891 | }
1892 | ],
1893 | "source": [
1894 | "df = df.drop('my',axis=1)\n",
1895 | "df.head()"
1896 | ]
1897 | },
1898 | {
1899 | "cell_type": "code",
1900 | "execution_count": 94,
1901 | "id": "76d7e6b0",
1902 | "metadata": {},
1903 | "outputs": [
1904 | {
1905 | "data": {
1906 | "text/plain": [
1907 | "(2, 3)"
1908 | ]
1909 | },
1910 | "execution_count": 94,
1911 | "metadata": {},
1912 | "output_type": "execute_result"
1913 | }
1914 | ],
1915 | "source": [
1916 | "df.shape"
1917 | ]
1918 | },
1919 | {
1920 | "cell_type": "code",
1921 | "execution_count": 95,
1922 | "id": "2623fce6",
1923 | "metadata": {},
1924 | "outputs": [
1925 | {
1926 | "data": {
1927 | "text/html": [
1928 | "\n",
1929 | "\n",
1942 | "
\n",
1943 | " \n",
1944 | " \n",
1945 | " | \n",
1946 | " name | \n",
1947 | " varsity | \n",
1948 | " dept | \n",
1949 | "
\n",
1950 | " \n",
1951 | " \n",
1952 | " \n",
1953 | " | 0 | \n",
1954 | " Touhidul Islam | \n",
1955 | " EWU | \n",
1956 | " cse | \n",
1957 | "
\n",
1958 | " \n",
1959 | " | 1 | \n",
1960 | " HASIBUL | \n",
1961 | " VARSITY | \n",
1962 | " eee | \n",
1963 | "
\n",
1964 | " \n",
1965 | "
\n",
1966 | "
"
1967 | ],
1968 | "text/plain": [
1969 | " name varsity dept\n",
1970 | "0 Touhidul Islam EWU cse\n",
1971 | "1 HASIBUL VARSITY eee"
1972 | ]
1973 | },
1974 | "execution_count": 95,
1975 | "metadata": {},
1976 | "output_type": "execute_result"
1977 | }
1978 | ],
1979 | "source": [
1980 | "df"
1981 | ]
1982 | },
1983 | {
1984 | "cell_type": "code",
1985 | "execution_count": 98,
1986 | "id": "ed28067f",
1987 | "metadata": {},
1988 | "outputs": [
1989 | {
1990 | "data": {
1991 | "text/html": [
1992 | "\n",
1993 | "\n",
2006 | "
\n",
2007 | " \n",
2008 | " \n",
2009 | " | \n",
2010 | " NAME | \n",
2011 | " AGE | \n",
2012 | "
\n",
2013 | " \n",
2014 | " \n",
2015 | " \n",
2016 | " | 0 | \n",
2017 | " ABC | \n",
2018 | " 20 | \n",
2019 | "
\n",
2020 | " \n",
2021 | " | 1 | \n",
2022 | " CDF | \n",
2023 | " 35 | \n",
2024 | "
\n",
2025 | " \n",
2026 | "
\n",
2027 | "
"
2028 | ],
2029 | "text/plain": [
2030 | " NAME AGE\n",
2031 | "0 ABC 20\n",
2032 | "1 CDF 35"
2033 | ]
2034 | },
2035 | "execution_count": 98,
2036 | "metadata": {},
2037 | "output_type": "execute_result"
2038 | }
2039 | ],
2040 | "source": [
2041 | "df= pd.read_excel('DATA.xlsx')\n",
2042 | "df.head()"
2043 | ]
2044 | },
2045 | {
2046 | "cell_type": "code",
2047 | "execution_count": 99,
2048 | "id": "9c28b12e",
2049 | "metadata": {},
2050 | "outputs": [
2051 | {
2052 | "data": {
2053 | "text/html": [
2054 | "\n",
2055 | "\n",
2068 | "
\n",
2069 | " \n",
2070 | " \n",
2071 | " | \n",
2072 | " NAME | \n",
2073 | " AGE | \n",
2074 | "
\n",
2075 | " \n",
2076 | " \n",
2077 | " \n",
2078 | " | 0 | \n",
2079 | " ABC | \n",
2080 | " 20 | \n",
2081 | "
\n",
2082 | " \n",
2083 | " | 1 | \n",
2084 | " CDF | \n",
2085 | " 35 | \n",
2086 | "
\n",
2087 | " \n",
2088 | "
\n",
2089 | "
"
2090 | ],
2091 | "text/plain": [
2092 | " NAME AGE\n",
2093 | "0 ABC 20\n",
2094 | "1 CDF 35"
2095 | ]
2096 | },
2097 | "execution_count": 99,
2098 | "metadata": {},
2099 | "output_type": "execute_result"
2100 | }
2101 | ],
2102 | "source": [
2103 | "df2= pd.read_csv('DATA.csv')\n",
2104 | "df2.head()"
2105 | ]
2106 | },
2107 | {
2108 | "cell_type": "code",
2109 | "execution_count": 100,
2110 | "id": "92510d07",
2111 | "metadata": {},
2112 | "outputs": [],
2113 | "source": [
2114 | "df3 = pd.concat([df,df2])"
2115 | ]
2116 | },
2117 | {
2118 | "cell_type": "code",
2119 | "execution_count": 101,
2120 | "id": "9381f5ca",
2121 | "metadata": {},
2122 | "outputs": [
2123 | {
2124 | "data": {
2125 | "text/html": [
2126 | "\n",
2127 | "\n",
2140 | "
\n",
2141 | " \n",
2142 | " \n",
2143 | " | \n",
2144 | " NAME | \n",
2145 | " AGE | \n",
2146 | "
\n",
2147 | " \n",
2148 | " \n",
2149 | " \n",
2150 | " | 0 | \n",
2151 | " ABC | \n",
2152 | " 20 | \n",
2153 | "
\n",
2154 | " \n",
2155 | " | 1 | \n",
2156 | " CDF | \n",
2157 | " 35 | \n",
2158 | "
\n",
2159 | " \n",
2160 | " | 0 | \n",
2161 | " ABC | \n",
2162 | " 20 | \n",
2163 | "
\n",
2164 | " \n",
2165 | " | 1 | \n",
2166 | " CDF | \n",
2167 | " 35 | \n",
2168 | "
\n",
2169 | " \n",
2170 | "
\n",
2171 | "
"
2172 | ],
2173 | "text/plain": [
2174 | " NAME AGE\n",
2175 | "0 ABC 20\n",
2176 | "1 CDF 35\n",
2177 | "0 ABC 20\n",
2178 | "1 CDF 35"
2179 | ]
2180 | },
2181 | "execution_count": 101,
2182 | "metadata": {},
2183 | "output_type": "execute_result"
2184 | }
2185 | ],
2186 | "source": [
2187 | "df3"
2188 | ]
2189 | },
2190 | {
2191 | "cell_type": "code",
2192 | "execution_count": null,
2193 | "id": "dbbd1234",
2194 | "metadata": {},
2195 | "outputs": [],
2196 | "source": []
2197 | }
2198 | ],
2199 | "metadata": {
2200 | "kernelspec": {
2201 | "display_name": "Python 3",
2202 | "language": "python",
2203 | "name": "python3"
2204 | },
2205 | "language_info": {
2206 | "codemirror_mode": {
2207 | "name": "ipython",
2208 | "version": 3
2209 | },
2210 | "file_extension": ".py",
2211 | "mimetype": "text/x-python",
2212 | "name": "python",
2213 | "nbconvert_exporter": "python",
2214 | "pygments_lexer": "ipython3",
2215 | "version": "3.8.8"
2216 | }
2217 | },
2218 | "nbformat": 4,
2219 | "nbformat_minor": 5
2220 | }
2221 |
--------------------------------------------------------------------------------