-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1-python_data_structures.py
351 lines (236 loc) · 5.84 KB
/
1-python_data_structures.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
"""
Konu başlıkları:
- Working Settings
- Pycharm
- Virtual Environment
- Package Management
- Data Structures
"""
##################################################################################
# WORKING ENVIRONMENT SETTINGS - ANACONDA- PYCHARM
##################################################################################
# Anaconda nedir?
"""
Anaconda, Python tabanlı bir veri bilimi platformudur ve birçok popüler Python paketini ve aracını içerir.
Paket yöneticisi olan conda ve kullanıcı dostu bir grafiksel kullanıcı arayüzü olan Anaconda Navigator ile birlikte,
veri bilimcileri ve geliştiricileri için güçlü bir geliştirme ve analiz ortamı sağlar.
"""
# Pycharm nedir?
"""
IDE(Integrated Development Environment)
Python programlama dili için özel olarak tasarlanmış bir entegre geliştirme ortamıdır (IDE).
PyCharm, Python projelerini oluşturmanız, düzenlemeniz, hata ayıklamanız, test etmeniz ve dağıtmanız için bir dizi araç ve özellik sunar.
"""
# Virtual Environment neden oluşturuyoruz?
"""
İzole bir çalışma ortamı oluşturmak için "sanal ortam" oluşturmaktayız.
"""
"""
Sanal ortamlar birbirinden farklı kütüphane ve versiyonlar içerisinde projeler birbirini etkilemeden çalışma imkanı
sağlamaktadır.
"""
# Virtual ortam(Sanal ortam) araçları nelerdir?
"""
venv, virtualenv, pipenv, conda
"""
# Package Management(paket yönetim) toollarına neden ihtiyacımız bulunmaktadır?
"""
Tools that manage the dependency management work of libraries/packages.
"""
# Package management tools? Conda ve pip arasındaki ilişki nedir?
"""
pip, pipenv, conda
"""
"""
Conda, hem paket yönetimi hem de sanal ortam yönetimi yapmaktadır.
pip, paket yönetimi yapmaktadır.
"""
"""
venv ve virtualenv paket yönetim aracı olarak pip kullanır.
conda ve pipenv hem paket yönetimi hem virtual env yönetimi yapabilmektedir.
"""
# Virtual environment ve package management
# Sanal ortamların listelenmesi:
# conda env list
# Sanal ortam oluşturma:
# conda create –n myenv
# Sanal ortamı aktif etme:
# conda activate myenv
# Yüklü paketlerin listelenmesi:
# conda list
# Paket yükleme:
# conda install numpy
# Aynı anda birden fazla paket yükleme:
# conda install numpy scipy pandas
# Paket silme:
# conda remove package_name
# Belirli bir versiyona göre paket yükleme:
# conda install numpy=1.20.1
# Paket yükseltme:
# conda upgrade numpy
# Tüm paketlerin yükseltilmesi:
# conda upgrade –all
# pip: pypi (python package index) paket yönetim aracı
# Paket yükleme:
# pip install pandas
#######################
# eğer ortam deeğişkenlerini birisine aktarmak istersek yapmamız gereken:
# conda env export > environment.yaml
# örneğin başka bir bilgisayarda bu environment i tekrar oluşturmak istedik:
# conda env create -f environment.yaml
##################################################################################
# DATA STRUCTURES ( VERI YAPILARI)
##################################################################################
# Veri yapıları nelerdir?
"""
# Sayılar
# Strings
# List
# Dictionary
# Tuple
# Set
"""
# SAYILAR
# int
x = 10
type(x)
# float
y = 20.3
type(y)
# complex
z = 3j + 5
type(z)
t = 1j + 10
type(t)
# STRING
x = "DATA SCIENCE"
type(x)
y = "Data\t Science"
# BOOLEAN
True
False
type(False)
10 % 5 == 3 % 3
type(10 % 5 == 3 % 3)
10 / 5 == 6 // 3
# LIST
"""
Değiştirilebilir
Sıralıdır.
Index işlemi yapılabilir.
Kapsayıcıdır.
"""
l= ["Data",1,"python",1.2,"machine learning",2.4]
type(l)
# check methods?
dir(l)
# eleman ekleme
l.append("chatgpt")
print(l)
# l.append(4,"comprehension")
# eleman çıkarma
l.pop(2)
print(l)
# indexleme
l[2] = "chatgpt"
print(l)
## Yorumlama ##
b = ["String",1,2,"Python",(0,1,2)]
b[-2]
b[-6]
b.pop(-1)
print(b)
# DICT
"""
Değiştirilebilir
Sırasızdır
Kapsayıcıdır.
"""
d = {"Captain America: The First Avenger": 2011,
"Avengers": 2012,
"Avengers:Ultron Age": 2015,
"Avengers:Infinity War":2018,
"Avengers:End Game":2019}
print(d)
d.keys()
d.values()
# Key Sorgulama
"Avengers" in d
# Value Değiştirmek
d["Avengers"] = 2014
# Value Erişmek
d.values()
# Key-Value Değerini Güncellemek
d.update({"Captain America: The First Avenger": 2010})
print(d)
# Son eleman silmek
d.popitem()
dir(d)
# TUPLE
"""
Değiştirilemez
Sıralıdır
Kapsayıcıdır.
"""
t = ("Machine Learning", "Data Science","Data Analyst","Data Engineer")
type(t)
# Indexleme yapılabilir mi?
t[0]= "Machine"
coral = ('blue coral', 'staghorn coral','pillar coral', 'elkhorn coral','black coral')
print(coral)
coral[-4:-2]
# Yukarıdaki tuple içerisinde "black coral" nesnesini siliniz ve tekrardan tuple olarak gösteriniz.
"""
c = list(coral)
c.pop(4)
c = tuple(c)
print(c)
"""
# SET
"""
Değiştirilebilir
Sırasız + Eşsizdir.
Kapsayıcıdır.
"""
s = {"Python", "Machine Learning", "Data Science","Python","Machine Learning"}
type(s)
print(s)
# Indexleme yapılabilir mi?
s[1]
# tuple ---
x = {42, 'foo', (1, 2, 3), 3.14159}
# list
y = {42, 'foo', [1, 2, 3], 3.14159}
# dictionary
z = {1,2, {'a': 1, 'b': 2},5}
#######################
# difference(): İki kümenin farkı
#######################
set1 = set([1, 3, 5])
set2 = set([1, 2, 3])
# set1'de olup set2'de olmayanlar.
set1.difference(set2)
set1 - set2
# set2'de olup set1'de olmayanlar.
set2.difference(set1)
set2 - set1
#######################
# isdisjoint(): İki kümenin kesişimi boş mu?
#######################
set1 = set([7, 8, 9])
set2 = set([5, 6, 7, 8, 9, 10])
set1.isdisjoint(set2)
set2.isdisjoint(set1)
#######################
# intersection(): İki kümenin kesişimi
#######################
set1 = set([1, 3, 5])
set2 = set([1, 2, 3])
set1.intersection(set2)
set2.intersection(set1)
set1 & set2
#######################
# union(): İki kümenin birleşimi
#######################
set1.union(set2)
set2.union(set1)