Kurs
Serileştirme bilmeniz gereken harika bir kavramdır. Verilerinizin veya modellerinizin durumunu korumanıza olanak tanır; böylece her seferinde en baştan yeniden işleme veya yeniden eğitme gereksinimini ortadan kaldırır.
Burada, iyi bilinen Python Pickle modülünü inceleyeceğim. Sonunda, listeler ve sözlükler gibi yaygın veri yapılarını nasıl serileştirip tersine serileştireceğinizi ve farklı performans optimizasyon tekniklerinden nasıl yararlanacağınızı biliyor olacaksınız.
Ayrıca bir sonraki adım olarak Python'da Makine Öğrenimi İş Akışları Tasarlama kursumuzu öneririm; burada ML modellerini üretim için nasıl serileştirip konteynerleştireceğinizi öğrenebilirsiniz.
Nesne Serileştirmeye Giriş
Önceden oluşturduğunuz bir veri çerçevesine, değişkene veya makine öğrenimi modeline erişmeniz gerektiğinde Python kodunuzu her seferinde yeniden çalıştırmaktan bıktınız mı?
Nesne serileştirme aradığınız çözüm olabilir.
Bu, bir veri yapısını bellekte saklama sürecidir; böylece mevcut durumunu kaybetmeden gerektiğinde yükleyebilir veya iletebilirsiniz.
İşte serileştirmenin nasıl çalıştığını açıklayan basit bir şema:

Görsel: Yazar
Python'da listeler, demetler (tuple) ve kümeler gibi üst düzey veri yapılarıyla çalışırız. Ancak bu nesneleri bellekte saklamak istediğimizde, bilgisayarın anlayabileceği bir bayt dizisine dönüştürülmeleri gerekir. Bu işleme serileştirme denir.
Aynı veri yapısına bir sonraki erişimimizde, bu bayt dizisi tersine serileştirme olarak bilinen bir süreçle tekrar üst düzey nesneye dönüştürülmelidir.
Serileştirme için JSON, XML, HDF5 ve Pickle gibi formatları kullanabiliriz. Bu eğitimde serileştirme için Python Pickle kütüphanesini öğreneceğiz. Kullanım alanlarını ele alacak ve diğer serileştirme formatları yerine Pickle'ı ne zaman seçmeniz gerektiğini anlayacağız.
Son olarak, Pickle Python kütüphanesini kullanarak listeleri, sözlükleri, Pandas veri çerçevelerini, makine öğrenimi modellerini ve daha fazlasını nasıl serileştireceğimizi öğreneceğiz.
Bu eğitimdeki tüm örnek kodları kolayca kendiniz çalıştırmak için, Python'ın önceden kurulu olduğu ve tüm kod örneklerini içeren ücretsiz bir DataLab çalışma kitabı oluşturabilirsiniz. Python pickle dosyalarını yükleme üzerine daha fazla pratik için bu uygulamalı DataCamp alıştırmasına göz atın.
Neden Nesne Serileştirmeye İhtiyaç Duyarız?
Python Pickle ile başlamadan önce, nesne serileştirmenin neden bu kadar önemli olduğunu anlayalım.
Serileştirmek yerine, veri yapılarını bir metin dosyasına kaydedip gerektiğinde tekrar erişemiyor muyuz diye düşünüyor olabilirsiniz.
Serileştirmenin faydalarını anlamak için basit bir örnek üzerinden gidelim.
İşte ad, yaş ve cinsiyet gibi öğrenci bilgilerini içeren iç içe geçmiş bir sözlük:
students = {
'Student 1': {
'Name': "Alice", 'Age' :10, 'Grade':4,
},
'Student 2': {
'Name':'Bob', 'Age':11, 'Grade':5
},
'Student 3': {
'Name':'Elena', 'Age':14, 'Grade':8
}
}
“students” nesnesinin veri türünü inceleyelim:
type(students)
dict
Öğrenci nesnesinin türünün sözlük olduğunu doğruladığımıza göre, bunu serileştirmeden bir metin dosyasına yazmaya geçelim:
with open('student_info.txt','w') as data:
data.write(str(students))
Metin dosyalarına yalnızca string nesneler yazabildiğimiz için sözlüğü str() işleviyle bir stringe dönüştürdüğümüze dikkat edin. Bu, sözlüğümüzün orijinal durumunu kaybettiğimiz anlamına gelir.
Şimdi sözlüğü okuyalım, yazdıralım ve türünü tekrar kontrol edelim:
with open("student_info.txt", 'r') as f:
for students in f:
print(students)
type(students)
str
İç içe sözlük artık bir string olarak yazdırılıyor ve anahtarlarına veya değerlerine erişmeye çalıştığımızda hata döndürecektir.
Tam da burada serileştirme devreye girer.
Sözlükler, veri çerçeveleri ve iç içe listeler gibi daha karmaşık veri tipleriyle çalışırken, serileştirme kullanıcının nesnenin orijinal durumunu ilgili herhangi bir bilgiyi kaybetmeden korumasını sağlar.
Bu makalenin ilerleyen kısımlarında, aynı sözlüğü Pickle kullanarak bir dosyada saklamayı ve kütüphaneyi kullanarak tersine serileştirmeyi öğreneceğiz. Ayrı bir eğitimde Python sözlük üreteci hakkında daha fazla okuyabilirsiniz.
Python'da Pickle'a Giriş
Python'un Pickle modülü, veri tiplerini serileştirmek ve tersine serileştirmek için kullanılan popüler bir formattır. Bu format Python'a özgüdür; yani Pickle nesneleri başka bir programlama dili kullanılarak yüklenemez.
Pickle'ın diğer serileştirme formatlarına kıyasla kendine özgü avantaj ve dezavantajları vardır.
Nesneleri serileştirmek için Pickle kullanmanın avantajları
- JSON gibi demetleri (tuple) ve datetime nesnelerini işleyemeyen serileştirme formatlarının aksine, Pickle neredeyse tüm yaygın yerleşik Python veri tiplerini serileştirebilir. Ayrıca JSON'un yapamadığı şekilde nesnenin tam durumunu korur.
- Pickle, bir nesneyi yalnızca bir kez yazdığı için özyinelemeli (recursive) yapıları saklarken de iyi bir seçimdir.
- Pickle, nesneleri tersine serileştirirken esneklik sağlar. Farklı değişkenleri kolayca bir Pickle dosyasına kaydedebilir ve bunları farklı bir Python oturumunda geri yükleyerek, kodunuzu düzenlemek zorunda kalmadan verilerinizi tam olarak olduğu gibi geri alabilirsiniz.
Pickle kullanmanın dezavantajları
- Pickle güvensizdir çünkü nesneleri oluşturmak için kötü amaçlı Python çağrılabilirlerini çalıştırabilir. Bir nesneyi tersine serileştirirken, Pickle kötü amaçlı bir çağrılabilir ile kötü amaçlı olmayanı ayırt edemez. Bu nedenle, kullanıcılar tersine serileştirme sırasında keyfi kod çalıştırabilir.
- Daha önce belirtildiği gibi, Pickle Python'a özgü bir modüldür ve farklı bir dil kullanırken pickle'lanmış nesneleri tersine serileştirmekte zorlanabilirsiniz.
- Birçok kıyaslamaya göre Pickle, JSON ve ApacheThrift gibi formatlardan daha yavaş görünür ve daha büyük serileştirilmiş değerler üretir.
Pickle Dump ve Load Fonksiyonlarıyla Nesneleri Kaydetme ve Yükleme
Pickle, Python nesnelerini serileştirmek ve tersine serileştirmek için aşağıdaki işlevleri kullanır:
pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None)
pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None)
pickle.load(file, *, fix_imports=True, encoding='ASCII', errors='strict', buffers=None)
pickle.loads(data, /, *, fix_imports=True, encoding=”ASCII”, errors=”strict”, buffers=None)
Pickle dump() ve dumps() işlevleri bir nesneyi serileştirmek için kullanılır. Aralarındaki tek fark, dump()'ın veriyi bir dosyaya yazması, dumps()'ın ise veriyi bir bayt nesnesi olarak temsil etmesidir.
Benzer şekilde, load() pickle'lanmış nesneleri bir dosyadan okurken, loads() bunları bayt benzeri bir nesneden tersine serileştirir.
Bu eğitimde, Python nesnelerini bir dosyaya pickle'lamak ve unpickle'lamak için dump() ve load() işlevlerini kullanacağız.
Pickle ile Python Veri Yapılarını Serileştirme
Listeler
Önce basit bir Python listesi oluşturalım:
import pickle
student_names = ['Alice','Bob','Elena','Jane','Kyle']
Şimdi bir metin dosyası açalım, listeyi dumps() işlevini kullanarak içine yazalım ve dosyayı kapatalım:
with open('student_file.pkl', 'wb') as f: # open a text file
pickle.dump(student_names, f) # serialize the list
Önce “student_file.pkl” adlı bir dosya oluşturduk. Uzantının mutlaka .pkl olması gerekmez. Bunu istediğiniz gibi adlandırabilirsiniz ve dosya yine de oluşturulur. Ancak bunun bir Pickle dosyası olduğunu hatırlatması için .pkl uzantısını kullanmak iyi bir pratiktir.
Ayrıca dosyayı wb kipinde açtığımıza dikkat edin. Bu, verilerin bir bayt nesnesi olarak döndürülmesi için dosyayı ikili kipte yazdığınız anlamına gelir.
Ardından, dump() işlevini kullanarak student_names listesini dosyada saklarız.
Son olarak, dosyayı aşağıdaki kod satırıyla kapatabilirsiniz:
f.close()
Şimdi dosyayı tersine serileştirelim ve listeyi yazdıralım:
with open('student_file.pkl', 'rb') as f:
student_names_loaded = pickle.load(f) # deserialize using load()
print(student_names_loaded) # print student names
Yukarıdaki kodun çıktısı şu şekilde olmalıdır:
['Alice', 'Bob', 'Elena', 'Jane', 'Kyle']
Dosyayı tersine serileştirmek için rb kipini, yani okuma ikili kipini kullanmamız gerektiğine dikkat edin. Ardından, load() işlevini kullanarak nesneyi unpickle ederiz; bundan sonra verileri farklı bir değişkende saklayabilir ve uygun gördüğümüz gibi kullanabiliriz.
Şimdi de az önce unpickle ettiğimiz listenin veri türünü kontrol edelim:
type(student_names_loaded)
list
Harika! Bu listenin orijinal durumunu ve veri türünü koruduk.
Numpy dizileri
Şimdi biraz daha karmaşık bir veri tipini - Numpy dizilerini serileştirip tersine serileştirmeyi deneyelim.
Önce 10'a 10'luk bir birler dizisi oluşturalım:
import numpy as np
numpy_array = np.ones((10,10)) # 10x10 array
Daha sonra, tıpkı önce yaptığımız gibi, bu diziyi bir dosyaya serileştirmek için dump() işlevini çağıralım:
with open('my_array.pkl','wb') as f:
pickle.dump(numpy_array, f)
Son olarak, bu diziyi unpickle edelim ve orijinal durumunu koruduğundan emin olmak için şeklini ve veri türünü kontrol edelim:
with open('my_array.pkl','rb') as f:
unpickled_array = pickle.load(f)
print('Array shape: '+str(unpickled_array.shape))
print('Data type: '+str(type(unpickled_array)))
Şu çıktıyı almalısınız:
Array shape: (10, 10)
Data type: <class 'numpy.ndarray'>
Unpickle edilen nesne, az önce serileştirdiğimiz nesneyle aynı şekil ve veri tipine sahip 10x10 bir Numpy dizisidir.
pandas DataFrame'ler
Bir veri çerçevesi, veri bilimcilerin her gün çalıştığı bir nesnedir. Bir Pandas DataFrame'i yüklemenin ve kaydetmenin en popüler yolu onu CSV dosyası olarak okuyup yazmaktır. Verileri içe aktarma hakkında daha fazla bilgi için pandas read_csv() eğitimize göz atın.
Ancak bu süreç serileştirmeden daha yavaştır ve veri çerçevesi büyükse son derece zaman alıcı hale gelebilir.
Bir pandas veri çerçevesini Pickle ile kaydetme/yükleme verimliliğini, CSV ile karşılaştırarak geçen süreleri kıyaslayalım.
Önce 100.000 satır sahte veriye sahip bir pandas veri çerçevesi oluşturalım:
import pandas as pd
import numpy as np
# Set random seed
np.random.seed(123)
data = {'Column1': np.random.randint(0, 10, size=100000),
'Column2': np.random.choice(['A', 'B', 'C'], size=100000),
'Column3': np.random.rand(100000)}
# Create Pandas dataframe
df = pd.DataFrame(data)
Şimdi bu veri çerçevesini bir csv dosyası olarak kaydetmenin ne kadar zaman aldığını hesaplayalım:
import time
start = time.time()
df.to_csv('pandas_dataframe.csv')
end = time.time()
print(end - start)
0.19349145889282227
Üç sütun ve 100.000 satıra sahip bir Pandas veri çerçevesini bir csv dosyasına kaydetmemiz 0,19 saniye sürdü.
Pickle kullanmak performansı artırmaya yardımcı olabilir mi bakalım. pandas kütüphanesinde, veri çerçevelerini tek satırda pickle dosyalarına serileştirmemizi sağlayan to_pickle() adlı bir yöntem vardır:
start = time.time()
df.to_pickle("my_pandas_dataframe.pkl")
end = time.time()
print(end - start)
0.0059659481048583984
Aynı Pandas DataFrame'ini bir Pickle dosyasına kaydetmek yalnızca 5 milisaniye sürdü; bu da csv olarak kaydetmeye kıyasla önemli bir performans artışı.
Şimdi dosyayı tekrar Pandas'a okuyalım ve bir Pickle dosyasını yüklemenin, bir csv dosyasını okumaya kıyasla performans avantajı sağlayıp sağlamadığına bakalım:
# Reading the csv file into Pandas:
start1 = time.time()
df_csv = pd.read_csv("my_pandas_dataframe.csv")
end1 = time.time()
print("Time taken to read the csv file: " + str(end1 - start1) + "\n")
# Reading the Pickle file into Pandas:
start2 = time.time()
df_pkl = pd.read_pickle("my_pandas_dataframe.pkl")
end2 = time.time()
print("Time taken to read the Pickle file: " + str(end2 - start2))
Yukarıdaki kod şu çıktıyı üretmelidir:
Time taken to read the csv file: 0.00677490234375
Time taken to read the Pickle file: 0.0009608268737792969
CSV dosyasını Pandas'a okumak 6 milisaniye sürdü; Pickle dosyasını okumamız ise yalnızca 0,9 milisaniye sürdü.
Bu fark küçük görünse de, büyük Pandas veri çerçevelerini Pickle ile serileştirmek önemli zaman kazançları sağlayabilir. Pickle ayrıca her durumda her sütunun veri tipini korumamıza yardımcı olur ve bir CSV dosyasına kıyasla daha az disk alanı kaplar.
Sözlükler
Son olarak, eğitimin ilk bölümünde bir metin dosyasına yazdığımız sözlüğü serileştirelim:
students = {
'Student 1': {
'Name': "Alice", 'Age' :10, 'Grade':4,
},
'Student 2': {
'Name':'Bob', 'Age':11, 'Grade':5
},
'Student 3': {
'Name':'Elena', 'Age':14, 'Grade':8
}
}
Bu sözlüğü bir metin dosyası olarak kaydettiğimizde, onu bir stringe dönüştürmek zorunda kaldığımızı ve orijinal durumunu kaybettiğimizi hatırlayın.
Şimdi Pickle kullanarak serileştirelim ve bir Python sözlüğünün tüm özelliklerini hâlâ içerdiğinden emin olmak için geri okuyalım:
# serialize the dictionary to a pickle file
with open("student_dict.pkl", "wb") as f:
pickle.dump(students, f)
# deserialize the dictionary and print it out
with open("student_dict.pkl", "rb") as f:
deserialized_dict = pickle.load(f)
print(deserialized_dict)
Şu çıktıyı almalısınız:
{'Student 1': {'Name': 'Alice', 'Age': 10, 'Grade': 4}, 'Student 2': {'Name': 'Bob', 'Age': 11, 'Grade': 5}, 'Student 3': {'Name': 'Elena', 'Age': 14, 'Grade': 8}}
Şimdi bu değişkenin türünü kontrol edelim:
type(deserialized_dict)
dict
Bu sözlükteki ilk öğrenci hakkında bazı bilgilere erişmeyi deneyelim:
print(
"The first student's name is "
+ deserialized_dict["Student 1"]["Name"]
+ " and she is "
+ (str(deserialized_dict["Student 1"]["Age"]))
+ " years old."
)
The first student's name is Alice and she is 10 years old.
Harika! Sözlük tüm orijinal özelliklerini korudu ve serileştirmeden önceki gibi erişilebiliyor. Daha fazlasını öğrenmek için Python sözlük üreteci eğitimimize göz atın.
Pickle ile Makine Öğrenimi Modellerini Serileştirme
Bir makine öğrenimi modelini eğitmek saatler, hatta bazen günler süren zahmetli bir süreçtir. Bir algoritmayı, onu tekrar kullanmanız veya farklı bir ortama aktarmanız gerektiğinde sıfırdan yeniden eğitmek pratik değildir.
Makine öğrenimi algoritmaları oluştururken en iyi uygulamalar hakkında bilgi edinmek isterseniz, Python'da Makine Öğrenimi İş Akışları Tasarlama kursumuzu alabilirsiniz.
Pickle, makine öğrenimi modellerini mevcut durumlarıyla serileştirmenize olanak tanır; böylece gerektiğinde yeniden kullanmanız mümkün olur.
Bu bölümde, bir makine öğrenimi modelini Pickle ile serileştirmeyi öğreneceğiz.
Bunu yapmak için önce biraz sahte veri üretelim ve Scikit-Learn kütüphanesiyle bir doğrusal regresyon modeli oluşturalım:
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
# generate regression dataset
X, y = make_regression(n_samples=100, n_features=3, noise=0.1, random_state=1)
# train regression model
linear_model = LinearRegression()
linear_model.fit(X, y)
Şimdi bazı özet model parametrelerini yazdıralım:
# summary of the model
print('Model intercept :', linear_model.intercept_)
print('Model coefficients : ', linear_model.coef_)
print('Model score : ', linear_model.score(X, y))
Model intercept : -0.010109549594702116
Model coefficients : [44.18793068 98.97389468 58.17121618]
Model score : 0.9999993081899219
Ardından bu modeli Pickle'ın dump() işlevini kullanarak serileştirebiliriz:
with open("linear_regression.pkl", "wb") as f:
pickle.dump(linear_model, f)
Model artık bir Pickle dosyası olarak kaydedildi. load() işlevini kullanarak tersine serileştirelim:
with open("linear_regression.pkl", "rb") as f:
unpickled_linear_model = pickle.load(f)
Serileştirilmiş model şimdi yüklenip unpickled_linear_model değişkenine kaydedildi. Başlangıçta oluşturduğumuz modelle aynı olduğundan emin olmak için bu modelin parametrelerini kontrol edelim:
# summary of the model
print('Model intercept :', unpickled_linear_model.intercept_)
print('Model coefficients : ', unpickled_linear_model.coef_)
print('Model score : ', unpickled_linear_model.score(X, y))
Şu çıktıyı almalısınız:
Model intercept : -0.010109549594702116
Model coefficients : [44.18793068 98.97389468 58.17121618]
Model score : 0.9999993081899219
Harika! Az önce unpickle ettiğimiz modelin parametreleri, ilk oluşturduğumuz modelle aynı.
Artık bu modeli bir test veri kümesi üzerinde tahmin yapmak, üzerine yeniden eğitmek veya farklı bir ortama aktarmak için kullanmaya devam edebiliriz.
Büyük Nesneler İçin Python Pickle Performansını Artırma
Pickle, çeşitli kıyaslamalarda sıklıkla JSON, XML ve HDF5'ten daha hızlı olduğu görülen verimli bir serileştirme formatıdır.
Ancak son derece büyük veri yapıları veya devasa makine öğrenimi modelleriyle uğraşırken Pickle önemli ölçüde yavaşlayabilir ve serileştirme iş akışınızda darboğaz haline gelebilir.
Pickle dosyalarını kaydetme ve yükleme süresini azaltmanın bazı yolları şunlardır:
PROTOCOL bağımsız değişkenini kullanın
Pickle dosyalarını kaydederken ve yüklerken kullanılan varsayılan protokol şu anda farklı Python sürümleriyle en uyumlu olan 4'tür.
Ancak iş akışınızı hızlandırmak istiyorsanız, Pickle'ın en hızlı kullanılabilir protokolü olan HIGHEST_PROTOCOL bağımsız değişkenini kullanabilirsiniz.
Pickle'ın en uyumlu protokolü ile varsayılan protokol arasındaki performans farkını karşılaştırmak için önce bir Pandas DataFrame'ini varsayılan protokolle serileştirelim. Dikkat edin, belirli bir protokol açıkça belirtilmezse Pickle'ın kullandığı sürüm budur:
import pickle
import time
import numpy as np
# Set random seed
np.random.seed(100)
data = {'Column1': np.random.randint(0, 10, size=100000),
'Column2': np.random.choice(['A', 'B', 'C'], size=100000),
'Column3': np.random.rand(100000)}
# serialize to a file
start = time.time()
with open("df1.pkl", "wb") as f:
pickle.dump(data, f)
end = time.time()
print(end - start)
0.006001710891723633
DataFrame'i Pickle'ın varsayılan protokolüyle serileştirmemiz yaklaşık 6 milisaniye sürdü.
Şimdi DataFrame'i en yüksek protokolle pickle'layalım:
start = time.time()
with open("df2.pkl", "wb") as f:
pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
end = time.time()
print(end - start)
0.0030384063720703125
En yüksek protokolle, DataFrame'i yarı sürede serileştirmeyi başardık.
Pickle yerine cPickle kullanın
cPickle modülü, C ile yazılmış daha hızlı bir Pickle sürümüdür. Bu, tamamen Python ile uygulanmış Pickle kütüphanesinden daha hızlı olduğu anlamına gelir.
Python3'te cPickle'ın _pickle olarak yeniden adlandırıldığını ve içe aktaracağımız kütüphanenin bu olduğunu unutmayın.
import _pickle as cPickle
start = time.time()
with open("df3.pkl", "wb") as f:
cPickle.dump(data, f)
end = time.time()
print(end-start)
0.004027366638183594
cPickle ile serileştirme yaklaşık 4 milisaniye sürdü; bu da Pickle Python modülüne göre kayda değer bir iyileşme demektir.
Sadece ihtiyacınız olanı serileştirin
Serileştirmeyi hızlandırmaya yönelik çözümler olsa bile, süreç büyük nesneler için hâlâ çok yavaş olabilir.
Performansı artırmak için veri yapısını parçalayabilir ve yalnızca gerekli alt kümeleri serileştirebilirsiniz.
Örneğin sözlüklerle çalışırken, tekrar erişmek istediğiniz anahtar-değer çiftlerini belirleyebilirsiniz. Nesnenin karmaşıklığını azaltıp süreci önemli ölçüde hızlandıracağı için serileştirmeden önce sözlüğün boyutunu küçültün.
Python'da Pickle ile Serileştirme: Sonraki Adımlar
Tebrikler! Python'da serileştirme ve Pickle kütüphanesinin kullanımıyla ilgili çok çeşitli konuları öğrendiniz.
Artık serileştirmenin ne olduğunu, Python veri yapılarını Pickle ile nasıl serileştireceğinizi ve Pickle'ın performansını farklı bağımsız değişkenler ve modüller kullanarak nasıl optimize edeceğinizi sağlam şekilde anlıyorsunuz.
Serileştirme hakkındaki bilginizi geliştirmek ve veri bilimi iş akışlarınızı güçlendirmek için atabileceğiniz bazı adımlar şunlardır:
- Yeni Serileştirme Formatlarını Öğrenin. Bu eğitimde yalnızca Pickle modülünü ele aldık; ancak her senaryoda kullanılacak en iyi serileştirme formatı olmayabilir. JSON, XML ve HDF5 gibi diğer formatları da öğrenmeye değer; böylece farklı kullanım durumları için hangisini seçeceğinizi bilirsiniz.
- Kendiniz Deneyin. Bu eğitimde öğretilen kavramları veri bilimi iş akışlarınıza uygulayın. Bir dahaki sefere yeni bir veri yapısı oluşturduğunuzda veya bir hesaplamanın çıktısını bir değişkende sakladığınızda, tüm kodunuzu tekrar tekrar çalıştırmak yerine bunu daha sonra kullanmak üzere serileştirin.
- Çevrimiçi Bir Kurs Alın. Veri bilimi iş akışlarınızı optimize etmek ve serileştirme gibi görevleri verimli şekilde gerçekleştirmek için Python veri yapıları ve nesneleri konusunda sağlam bir anlayışa sahip olmak şarttır. Bunu başarmak için Python'da Veri Bilimi için Veri Tipleri kursumuzu alabilirsiniz.
Natassha , veri bilimi ile pazarlamanın kesişiminde çalışan bir veri danışmanıdır. Verilerin, akıllıca kullanıldığında, bireyler ve kurumlar için olağanüstü bir büyüme ilhamı olabileceğine inanır. Kendi kendini yetiştirmiş bir veri profesyoneli olarak Natassha , veri bilimi alanına girmek isteyenlere yardımcı olacak makaleler yazmayı sever. Kişisel blogundaki ve harici yayınlardaki makaleleri aylık ortalama 200 bin görüntülenme almaktadır.

