myawesomepkg 0.1.4__py3-none-any.whl → 0.1.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- myawesomepkg/TSAPY1/1 (A) Working with Numpy Arrays.py +1146 -0
- myawesomepkg/TSAPY1/1(B)Aggregation (1).py +319 -0
- myawesomepkg/TSAPY1/1(C) Broadcasting .py +328 -0
- myawesomepkg/TSAPY1/10-A_Load_stringr.py +77 -0
- myawesomepkg/TSAPY1/10-B_Forcats.py +70 -0
- myawesomepkg/TSAPY1/2(a) Comparison, Masking And Boolean Logic (1).py +497 -0
- myawesomepkg/TSAPY1/2(b)Fancy Indexing.py +594 -0
- myawesomepkg/TSAPY1/2(c) Sorting Arrays.py +528 -0
- myawesomepkg/TSAPY1/2(d) Structured Array.py +350 -0
- myawesomepkg/TSAPY1/3 (A) Handling Missing Data.py +1013 -0
- myawesomepkg/TSAPY1/4A_Merge_Joins.py +1209 -0
- myawesomepkg/TSAPY1/9A_Dplyr.py +85 -0
- myawesomepkg/TSAPY1/9B_Tidyr.py +71 -0
- myawesomepkg/TSAPY1/Aggregation_Groupin_Pivot_Filter_Vectorice_Time_Series.py +1999 -0
- myawesomepkg/TSAPY1/Combining_Joins.py +1209 -0
- myawesomepkg/TSAPY1/Pract3_C.py +482 -0
- myawesomepkg/TSAPY1/Pract5_Data_Visualization.py +481 -0
- myawesomepkg/TSAPY1/Practical 6.py +860 -0
- myawesomepkg/TSAPY1/Print_R.py +123 -0
- myawesomepkg/TSAPY1/R_Graph.py +32 -0
- myawesomepkg/TSAPY1/Working_Ggplot.py +53 -0
- myawesomepkg/TSAPY1/pract3A-B.py +3212 -0
- {myawesomepkg-0.1.4.dist-info → myawesomepkg-0.1.6.dist-info}/METADATA +1 -1
- myawesomepkg-0.1.6.dist-info/RECORD +47 -0
- myawesomepkg-0.1.4.dist-info/RECORD +0 -25
- {myawesomepkg-0.1.4.dist-info → myawesomepkg-0.1.6.dist-info}/WHEEL +0 -0
- {myawesomepkg-0.1.4.dist-info → myawesomepkg-0.1.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,328 @@
|
|
1
|
+
{
|
2
|
+
"cells": [
|
3
|
+
{
|
4
|
+
"cell_type": "code",
|
5
|
+
"execution_count": 1,
|
6
|
+
"id": "4ee84ef3-6d19-4f7d-98be-16bbfcb71e6c",
|
7
|
+
"metadata": {},
|
8
|
+
"outputs": [],
|
9
|
+
"source": [
|
10
|
+
"import numpy as np"
|
11
|
+
]
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"cell_type": "code",
|
15
|
+
"execution_count": 2,
|
16
|
+
"id": "74fb5839-a2b0-45be-b1b8-d2f2550d1a2b",
|
17
|
+
"metadata": {},
|
18
|
+
"outputs": [
|
19
|
+
{
|
20
|
+
"data": {
|
21
|
+
"text/plain": [
|
22
|
+
"array([5, 6, 7])"
|
23
|
+
]
|
24
|
+
},
|
25
|
+
"execution_count": 2,
|
26
|
+
"metadata": {},
|
27
|
+
"output_type": "execute_result"
|
28
|
+
}
|
29
|
+
],
|
30
|
+
"source": [
|
31
|
+
"a = np.array([0, 1, 2])\n",
|
32
|
+
"b = np.array([5, 5, 5])\n",
|
33
|
+
"a + b"
|
34
|
+
]
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"cell_type": "code",
|
38
|
+
"execution_count": 3,
|
39
|
+
"id": "8bc67f66-298d-4a49-8324-724edfc3b00f",
|
40
|
+
"metadata": {},
|
41
|
+
"outputs": [
|
42
|
+
{
|
43
|
+
"data": {
|
44
|
+
"text/plain": [
|
45
|
+
"array([5, 6, 7])"
|
46
|
+
]
|
47
|
+
},
|
48
|
+
"execution_count": 3,
|
49
|
+
"metadata": {},
|
50
|
+
"output_type": "execute_result"
|
51
|
+
}
|
52
|
+
],
|
53
|
+
"source": [
|
54
|
+
"a + 5"
|
55
|
+
]
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"cell_type": "code",
|
59
|
+
"execution_count": 4,
|
60
|
+
"id": "0d02bfcf-e8bc-4147-a79a-b10f5bfd92be",
|
61
|
+
"metadata": {},
|
62
|
+
"outputs": [
|
63
|
+
{
|
64
|
+
"data": {
|
65
|
+
"text/plain": [
|
66
|
+
"array([[1., 1., 1.],\n",
|
67
|
+
" [1., 1., 1.],\n",
|
68
|
+
" [1., 1., 1.]])"
|
69
|
+
]
|
70
|
+
},
|
71
|
+
"execution_count": 4,
|
72
|
+
"metadata": {},
|
73
|
+
"output_type": "execute_result"
|
74
|
+
}
|
75
|
+
],
|
76
|
+
"source": [
|
77
|
+
"M = np.ones((3, 3))\n",
|
78
|
+
"M"
|
79
|
+
]
|
80
|
+
},
|
81
|
+
{
|
82
|
+
"cell_type": "code",
|
83
|
+
"execution_count": 5,
|
84
|
+
"id": "a05fc740-b5b1-4037-858b-40dd77c107b9",
|
85
|
+
"metadata": {},
|
86
|
+
"outputs": [
|
87
|
+
{
|
88
|
+
"data": {
|
89
|
+
"text/plain": [
|
90
|
+
"array([[1., 2., 3.],\n",
|
91
|
+
" [1., 2., 3.],\n",
|
92
|
+
" [1., 2., 3.]])"
|
93
|
+
]
|
94
|
+
},
|
95
|
+
"execution_count": 5,
|
96
|
+
"metadata": {},
|
97
|
+
"output_type": "execute_result"
|
98
|
+
}
|
99
|
+
],
|
100
|
+
"source": [
|
101
|
+
" M + a"
|
102
|
+
]
|
103
|
+
},
|
104
|
+
{
|
105
|
+
"cell_type": "code",
|
106
|
+
"execution_count": 7,
|
107
|
+
"id": "4a776322-ae3c-4429-bf5c-d46b8b7a146d",
|
108
|
+
"metadata": {},
|
109
|
+
"outputs": [
|
110
|
+
{
|
111
|
+
"name": "stdout",
|
112
|
+
"output_type": "stream",
|
113
|
+
"text": [
|
114
|
+
"[0 1 2]\n",
|
115
|
+
"[[0]\n",
|
116
|
+
" [1]\n",
|
117
|
+
" [2]]\n"
|
118
|
+
]
|
119
|
+
}
|
120
|
+
],
|
121
|
+
"source": [
|
122
|
+
"a = np.arange(3)\n",
|
123
|
+
"b = np.arange(3)[:, np.newaxis]\n",
|
124
|
+
"print(a)\n",
|
125
|
+
"print(b)"
|
126
|
+
]
|
127
|
+
},
|
128
|
+
{
|
129
|
+
"cell_type": "code",
|
130
|
+
"execution_count": 8,
|
131
|
+
"id": "71462ecf-69f9-46c1-92fe-c3218e6ba07a",
|
132
|
+
"metadata": {},
|
133
|
+
"outputs": [
|
134
|
+
{
|
135
|
+
"data": {
|
136
|
+
"text/plain": [
|
137
|
+
"array([[0, 1, 2],\n",
|
138
|
+
" [1, 2, 3],\n",
|
139
|
+
" [2, 3, 4]])"
|
140
|
+
]
|
141
|
+
},
|
142
|
+
"execution_count": 8,
|
143
|
+
"metadata": {},
|
144
|
+
"output_type": "execute_result"
|
145
|
+
}
|
146
|
+
],
|
147
|
+
"source": [
|
148
|
+
"a+b"
|
149
|
+
]
|
150
|
+
},
|
151
|
+
{
|
152
|
+
"cell_type": "code",
|
153
|
+
"execution_count": 11,
|
154
|
+
"id": "d9681666-e8d2-45f4-9847-191e80437555",
|
155
|
+
"metadata": {},
|
156
|
+
"outputs": [],
|
157
|
+
"source": [
|
158
|
+
" M = np.ones((2, 3))\n",
|
159
|
+
" a = np.arange(3)"
|
160
|
+
]
|
161
|
+
},
|
162
|
+
{
|
163
|
+
"cell_type": "code",
|
164
|
+
"execution_count": 10,
|
165
|
+
"id": "e03b0704-81f3-4eca-98e9-81e6dc840770",
|
166
|
+
"metadata": {},
|
167
|
+
"outputs": [
|
168
|
+
{
|
169
|
+
"data": {
|
170
|
+
"text/plain": [
|
171
|
+
"array([[1., 2., 3.],\n",
|
172
|
+
" [1., 2., 3.]])"
|
173
|
+
]
|
174
|
+
},
|
175
|
+
"execution_count": 10,
|
176
|
+
"metadata": {},
|
177
|
+
"output_type": "execute_result"
|
178
|
+
}
|
179
|
+
],
|
180
|
+
"source": [
|
181
|
+
" M + a"
|
182
|
+
]
|
183
|
+
},
|
184
|
+
{
|
185
|
+
"cell_type": "code",
|
186
|
+
"execution_count": 12,
|
187
|
+
"id": "cf655d66-3580-4705-ac9a-b2553d63232e",
|
188
|
+
"metadata": {},
|
189
|
+
"outputs": [],
|
190
|
+
"source": [
|
191
|
+
"a = np.arange(3).reshape((3, 1))\n",
|
192
|
+
"b = np.arange(3)"
|
193
|
+
]
|
194
|
+
},
|
195
|
+
{
|
196
|
+
"cell_type": "code",
|
197
|
+
"execution_count": 13,
|
198
|
+
"id": "15656827-a5ec-4b42-8557-219171bf3634",
|
199
|
+
"metadata": {},
|
200
|
+
"outputs": [
|
201
|
+
{
|
202
|
+
"data": {
|
203
|
+
"text/plain": [
|
204
|
+
"array([[0, 1, 2],\n",
|
205
|
+
" [1, 2, 3],\n",
|
206
|
+
" [2, 3, 4]])"
|
207
|
+
]
|
208
|
+
},
|
209
|
+
"execution_count": 13,
|
210
|
+
"metadata": {},
|
211
|
+
"output_type": "execute_result"
|
212
|
+
}
|
213
|
+
],
|
214
|
+
"source": [
|
215
|
+
"a+b"
|
216
|
+
]
|
217
|
+
},
|
218
|
+
{
|
219
|
+
"cell_type": "code",
|
220
|
+
"execution_count": 26,
|
221
|
+
"id": "b30c6a8e-c207-435c-a5a8-029deaa3a7e1",
|
222
|
+
"metadata": {},
|
223
|
+
"outputs": [],
|
224
|
+
"source": [
|
225
|
+
" M = np.ones((2, 3))\n",
|
226
|
+
" a = np.arange(3)"
|
227
|
+
]
|
228
|
+
},
|
229
|
+
{
|
230
|
+
"cell_type": "code",
|
231
|
+
"execution_count": 27,
|
232
|
+
"id": "8b03e29b-5c81-4e6c-90ff-e0baf107e1ca",
|
233
|
+
"metadata": {},
|
234
|
+
"outputs": [
|
235
|
+
{
|
236
|
+
"data": {
|
237
|
+
"text/plain": [
|
238
|
+
"array([[1., 2., 3.],\n",
|
239
|
+
" [1., 2., 3.]])"
|
240
|
+
]
|
241
|
+
},
|
242
|
+
"execution_count": 27,
|
243
|
+
"metadata": {},
|
244
|
+
"output_type": "execute_result"
|
245
|
+
}
|
246
|
+
],
|
247
|
+
"source": [
|
248
|
+
"M+a"
|
249
|
+
]
|
250
|
+
},
|
251
|
+
{
|
252
|
+
"cell_type": "code",
|
253
|
+
"execution_count": 17,
|
254
|
+
"id": "828ef6b1-ee3f-4694-9fe5-c7c31f9abf8b",
|
255
|
+
"metadata": {},
|
256
|
+
"outputs": [],
|
257
|
+
"source": [
|
258
|
+
"# x and y have 50 steps from 0 to 5\n",
|
259
|
+
"x = np.linspace(0, 5, 50)\n",
|
260
|
+
"y = np.linspace(0, 5, 50)[:, np.newaxis]\n",
|
261
|
+
"z = np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)"
|
262
|
+
]
|
263
|
+
},
|
264
|
+
{
|
265
|
+
"cell_type": "code",
|
266
|
+
"execution_count": 18,
|
267
|
+
"id": "c8650d43-0fe9-4516-8b17-b4a49bb3a980",
|
268
|
+
"metadata": {},
|
269
|
+
"outputs": [],
|
270
|
+
"source": [
|
271
|
+
"%matplotlib inline\n",
|
272
|
+
"import matplotlib.pyplot as plt"
|
273
|
+
]
|
274
|
+
},
|
275
|
+
{
|
276
|
+
"cell_type": "code",
|
277
|
+
"execution_count": 19,
|
278
|
+
"id": "187fc5a8-f3a7-477e-859b-079a04a64160",
|
279
|
+
"metadata": {},
|
280
|
+
"outputs": [
|
281
|
+
{
|
282
|
+
"data": {
|
283
|
+
"image/png": "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",
|
284
|
+
"text/plain": [
|
285
|
+
"<Figure size 640x480 with 2 Axes>"
|
286
|
+
]
|
287
|
+
},
|
288
|
+
"metadata": {},
|
289
|
+
"output_type": "display_data"
|
290
|
+
}
|
291
|
+
],
|
292
|
+
"source": [
|
293
|
+
"plt.imshow(z, origin='lower', extent=[0, 5, 0, 5],\n",
|
294
|
+
" cmap='viridis')\n",
|
295
|
+
"plt.colorbar();"
|
296
|
+
]
|
297
|
+
},
|
298
|
+
{
|
299
|
+
"cell_type": "code",
|
300
|
+
"execution_count": null,
|
301
|
+
"id": "825b318e-46e1-4f14-b99e-0ba0d357fa19",
|
302
|
+
"metadata": {},
|
303
|
+
"outputs": [],
|
304
|
+
"source": []
|
305
|
+
}
|
306
|
+
],
|
307
|
+
"metadata": {
|
308
|
+
"kernelspec": {
|
309
|
+
"display_name": "Python 3 (ipykernel)",
|
310
|
+
"language": "python",
|
311
|
+
"name": "python3"
|
312
|
+
},
|
313
|
+
"language_info": {
|
314
|
+
"codemirror_mode": {
|
315
|
+
"name": "ipython",
|
316
|
+
"version": 3
|
317
|
+
},
|
318
|
+
"file_extension": ".py",
|
319
|
+
"mimetype": "text/x-python",
|
320
|
+
"name": "python",
|
321
|
+
"nbconvert_exporter": "python",
|
322
|
+
"pygments_lexer": "ipython3",
|
323
|
+
"version": "3.11.7"
|
324
|
+
}
|
325
|
+
},
|
326
|
+
"nbformat": 4,
|
327
|
+
"nbformat_minor": 5
|
328
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
✅ Step 1: Load stringr
|
2
|
+
r
|
3
|
+
Copy
|
4
|
+
Edit
|
5
|
+
library(stringr)
|
6
|
+
🔹 1. String Basics
|
7
|
+
r
|
8
|
+
Copy
|
9
|
+
Edit
|
10
|
+
str <- "Hello Boss"
|
11
|
+
str_length(str) # Length of string
|
12
|
+
str_to_upper(str) # Uppercase
|
13
|
+
str_to_lower(str) # Lowercase
|
14
|
+
str_trim(" Hello ") # Trim spaces
|
15
|
+
🔹 2. Combining Strings
|
16
|
+
r
|
17
|
+
Copy
|
18
|
+
Edit
|
19
|
+
str1 <- "Hello"
|
20
|
+
str2 <- "Boss"
|
21
|
+
str_c(str1, str2, sep = " ") # Combine with space
|
22
|
+
🔹 3. Subsetting Strings
|
23
|
+
r
|
24
|
+
Copy
|
25
|
+
Edit
|
26
|
+
str_sub("DataScience", 1, 4) # "Data"
|
27
|
+
str_sub("DataScience", -7, -1) # "Science"
|
28
|
+
🔹 4. Locales
|
29
|
+
r
|
30
|
+
Copy
|
31
|
+
Edit
|
32
|
+
str_to_upper("straße", locale = "de") # German-specific case
|
33
|
+
🔹 5. Basic Matches
|
34
|
+
r
|
35
|
+
Copy
|
36
|
+
Edit
|
37
|
+
str_detect("apple", "pp") # TRUE
|
38
|
+
str_detect("apple", "z") # FALSE
|
39
|
+
🔹 6. Anchors (^, $)
|
40
|
+
r
|
41
|
+
Copy
|
42
|
+
Edit
|
43
|
+
str_detect("Boss is here", "^Boss") # TRUE
|
44
|
+
str_detect("Boss is here", "here$") # TRUE
|
45
|
+
🔹 7. Repetition
|
46
|
+
r
|
47
|
+
Copy
|
48
|
+
Edit
|
49
|
+
str_view("banana", "na{2}") # Match "n" followed by two "a"s
|
50
|
+
str_view("aaa", "a{2,3}") # Match 2 to 3 a's
|
51
|
+
🔹 8. Detect Matches
|
52
|
+
r
|
53
|
+
Copy
|
54
|
+
Edit
|
55
|
+
texts <- c("cat", "dog", "cow")
|
56
|
+
str_detect(texts, "c") # TRUE FALSE TRUE
|
57
|
+
🔹 9. Extract Matches
|
58
|
+
r
|
59
|
+
Copy
|
60
|
+
Edit
|
61
|
+
str_extract("Price: Rs 999", "\\d+") # "999"
|
62
|
+
🔹 10. Grouped Matches
|
63
|
+
r
|
64
|
+
Copy
|
65
|
+
Edit
|
66
|
+
str_match("ID: 12345", "ID: (\\d+)") # Group match returns matrix
|
67
|
+
🔹 11. Replacing Matches
|
68
|
+
r
|
69
|
+
Copy
|
70
|
+
Edit
|
71
|
+
str_replace("I love cats", "cats", "dogs") # "I love dogs"
|
72
|
+
🔹 12. Splitting
|
73
|
+
r
|
74
|
+
Copy
|
75
|
+
Edit
|
76
|
+
str_split("one,two,three", ",")[[1]] # "one" "two" "three"
|
77
|
+
Let me know if you want all these examples as a downloadable .R script or a reference
|
@@ -0,0 +1,70 @@
|
|
1
|
+
✅ Step 1: Load forcats package
|
2
|
+
r
|
3
|
+
Copy
|
4
|
+
Edit
|
5
|
+
library(forcats)
|
6
|
+
🔹 1. Creating Factors
|
7
|
+
r
|
8
|
+
Copy
|
9
|
+
Edit
|
10
|
+
grades <- c("B", "A", "C", "A", "B")
|
11
|
+
f_grades <- factor(grades)
|
12
|
+
f_grades
|
13
|
+
With specified order:
|
14
|
+
|
15
|
+
r
|
16
|
+
Copy
|
17
|
+
Edit
|
18
|
+
f_grades <- factor(grades, levels = c("A", "B", "C"), ordered = TRUE)
|
19
|
+
🔹 2. Modifying Factor Orders
|
20
|
+
r
|
21
|
+
Copy
|
22
|
+
Edit
|
23
|
+
# Reorder by frequency
|
24
|
+
fct_infreq(f_grades)
|
25
|
+
|
26
|
+
# Reorder manually
|
27
|
+
fct_relevel(f_grades, "C", "B", "A")
|
28
|
+
🔹 3. Modifying Factor Levels (Renaming)
|
29
|
+
r
|
30
|
+
Copy
|
31
|
+
Edit
|
32
|
+
fct_recode(f_grades,
|
33
|
+
"Excellent" = "A",
|
34
|
+
"Good" = "B",
|
35
|
+
"Average" = "C")
|
36
|
+
🔹 4. Lump Less Frequent Levels
|
37
|
+
r
|
38
|
+
Copy
|
39
|
+
Edit
|
40
|
+
items <- c("apple", "banana", "apple", "cherry", "banana", "fig", "fig", "fig")
|
41
|
+
f_items <- factor(items)
|
42
|
+
|
43
|
+
# Combine less frequent into "Other"
|
44
|
+
fct_lump(f_items, n = 2)
|
45
|
+
🔹 5. Drop Unused Levels
|
46
|
+
r
|
47
|
+
Copy
|
48
|
+
Edit
|
49
|
+
f <- factor(c("high", "medium", "low"), levels = c("low", "medium", "high", "extreme"))
|
50
|
+
f_dropped <- fct_drop(f)
|
51
|
+
🔹 6. Reverse Factor Order
|
52
|
+
r
|
53
|
+
Copy
|
54
|
+
Edit
|
55
|
+
fct_rev(f_grades)
|
56
|
+
🔹 7. Count Factors
|
57
|
+
r
|
58
|
+
Copy
|
59
|
+
Edit
|
60
|
+
fct_count(f_grades)
|
61
|
+
📌 Summary of Key forcats Functions
|
62
|
+
|
63
|
+
Function Use Case
|
64
|
+
fct_relevel() Change order of levels manually
|
65
|
+
fct_infreq() Order by frequency
|
66
|
+
fct_recode() Rename factor levels
|
67
|
+
fct_lump() Combine low-freq levels
|
68
|
+
fct_drop() Drop unused levels
|
69
|
+
fct_rev() Reverse order
|
70
|
+
fct_count() Count frequencies
|