Hoşgeldin Misafir

Veri Seti Kavramları

Mustafa73

20 Eyl 2023
423 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Veri seti kavramları, yapay zekâ ve veri bilimi alanlarında çok önemli olan verilerin sınıflandırılması, tanımlanması ve kullanılması ile ilgili terimlerdir. Veriler, yapay zekâ modellerinin eğitilmesi ve öğrenmesi için gerekli olan girdilerdir. Verilerden faydalı bilgiler çıkarmak için ise veri bilimi yöntemleri kullanılır. Veri seti kavramları, verilerin türüne, yapısına, özelliklerine ve işlevlerine göre farklı gruplara ayrılır. Bu gruplar şunlardır:
- Sayısal veriler: Bu veriler, tam sayı veya ondalık sayı olarak ifade edilen verilerdir. Örneğin, bir kişinin boyu, kilosu, yaşadığı şehrin nüfusu, bir ürünün fiyatı, bir arabanın hızı gibi veriler sayısal verilerdir. Sayısal veriler, matematiksel işlemler yapmak, istatistiksel analizler yapmak, grafikler çizmek gibi amaçlar için kullanılır. Sayısal veriler, yapay zekâ modellerinin hesaplama yapabilmesi ve tahminler üretebilmesi için gerekli olan verilerdir.
- Kategorik veriler: Bu veriler, metin olarak ifade edilen verilerdir. Örneğin, bir kişinin cinsiyeti, mesleği, doğum yeri, yaşadığı ülke, sevdiği renk gibi veriler kategorik verilerdir. Kategorik veriler, verileri gruplamak, sınıflandırmak, filtrelemek gibi amaçlar için kullanılır. Kategorik veriler, yapay zekâ modellerinin verileri tanıyabilmesi ve özelliklerine göre ayrıştırabilmesi için gerekli olan verilerdir.
- Zaman serileri: Bu veriler, belirli bir zaman aralığında kaydedilen verilerdir. Örneğin, bir hisse senedinin fiyatı, bir hastanın ateşi, bir web sitesinin ziyaretçi sayısı gibi veriler zaman serileridir. Zaman serileri, verileri zaman açısından karşılaştırmak, sıralamak, eğilimleri belirlemek, geleceği tahmin etmek gibi amaçlar için kullanılır. Zaman serileri, yapay zekâ modellerinin verilerin değişimini izleyebilmesi ve zamanla ilgili öngörüler yapabilmesi için gerekli olan verilerdir.
- Metin verileri: Bu veriler, sözcükler, cümleler ve paragraflardan oluşan verilerdir. Örneğin, bir kitabın içeriği, bir haberin başlığı, bir yorumun metni gibi veriler metin verileridir. Metin verileri, verileri anlamak, yorumlamak, özetlemek, sınıflandırmak, duygu analizi yapmak gibi amaçlar için kullanılır. Metin verileri, yapay zekâ modellerinin doğal dil işleme ve anlama yeteneklerini geliştirmesi için gerekli olan verilerdir.
Bu dört temel veri seti kavramının yanı sıra, yapay zekâ alanında başka türde veriler de kullanılmaktadır. Örneğin, görüntü işleme için resim ve video verileri, konuşma tanıma için ses verileri, yüz tanıma için biyometrik veriler gibi. Bu veriler, yapay zekâ modellerinin farklı algı ve işlevlere sahip olmasını sağlar.
Veri Seti
Veri seti, verilerin belirli bir sırayla düzenlendiği veri topluluğu dosyasıdır. Veri setleri, veri analizi, makine öğrenmesi ve yapay zekâ gibi alanlarda verileri işlemek için kullanılır. Veri setleri, verilerin kaynağına, formatına, türüne ve kategorisine göre farklı şekillerde sınıflandırılabilir.
Veri setlerinin kaynağına göre, verilerin nasıl elde edildiğine bağlı olarak farklı türlerde olabilir. Örneğin, bilgisayarlar veya makinelerden elde edilen veriler, sensörler, kameralar, GPS, akıllı saatler gibi cihazlardan gelen verilerdir. Bu veriler genellikle sayısal ve sürekli verilerdir. Anketler yoluyla toplanan veriler, insanların görüş, davranış, tutum, memnuniyet gibi konularda sorulan sorulara verdikleri cevaplardır. Bu veriler genellikle kategorik ve sıralı verilerdir. İnsanların gözlemlerinden elde edilen veriler, insanların doğal ortamlarında yaptıkları faaliyetler, etkileşimler, duygular gibi konularda kaydedilen verilerdir. Bu veriler genellikle metin, ses, video, resim gibi çoklu ortam verileridir. Web siteleri veya API'ler aracılığı ile elde edilen veriler, internet üzerinden erişilebilen veri kaynaklarından çekilen verilerdir. Bu veriler genellikle JSON, XML, HTML gibi formatlarda verilerdir.
Veri setlerinin formatına göre, verilerin nasıl saklandığına ve sunulduğuna bağlı olarak farklı türlerde olabilir. Örneğin, CSV veya elektronik tablo formatında veri setleri, verilerin satırlar ve sütunlardan oluşan bir tablo şeklinde düzenlendiği tek bir dosyadır. Bu veri setleri, verilerin kolayca okunmasını, işlenmesini ve analiz edilmesini sağlar. Farklı formatta birden çok dosyadan oluşan veri setleri, verilerin birden çok dosyaya bölündüğü veya farklı dosyalarda farklı veri türleri bulunduğu veri setleridir. Bu veri setleri, verilerin büyük hacimli, karmaşık veya çoklu ortam olması durumunda kullanılır.
Veri setlerinin türüne göre, verilerin niteliğine ve değerlerine bağlı olarak farklı türlerde olabilir. Örneğin, sayısal veri, verilerin sayısal değerlere sahip olduğu veri türüdür. Sayısal veriler, verilerin niceliksel olarak ölçülebilmesini sağlar. Sayısal veriler, sürekli veya ayrık olabilir. Sürekli veriler, verilerin herhangi bir aralıkta alabileceği değerlerdir. Örneğin, kişilerin yaşları, ev fiyatları, sıcaklık gibi veriler sürekli verilerdir. Ayrık veriler, verilerin sadece belirli değerleri alabileceği verilerdir. Örneğin, zar atma, madeni para atma, doğum sayısı gibi veriler ayrık verilerdir. Kategorik veri, verilerin belirli kategorilere ayrıldığı veri türüdür. Kategorik veriler, verilerin niteliksel olarak tanımlanmasını sağlar. Kategorik veriler, nominal veya ordinal olabilir. Nominal veriler, verilerin sadece isimlendirildiği verilerdir. Örneğin, cinsiyet, renkler, evet / hayır, şehirler gibi veriler nominal verilerdir. Ordinal veriler, verilerin sıralanabilir olduğu verilerdir. Örneğin, zayıf / orta / iyi / pekiyi, çocuk / genç / orta yaşlı / ihtiyar, evet / hayır gibi veriler ordinal verilerdir.
Veri setlerinin kategorisine göre, verilerin kullanıldığı alanlara ve amaçlara bağlı olarak farklı türlerde olabilir. Örneğin, makine öğrenmesi ve veri analizi projeleri için genel veri setleri, verilerin çeşitli konularda toplandığı ve farklı modellerin eğitilmesi ve test edilmesi için kullanıldığı veri setleridir. Bu veri setleri, verilerin tablo şeklinde düzenlendiği ve sayısal veya kategorik veriler içerdiği veri setleridir. Bilgisayarlı görme (computer vision) projeleri için video ve resimler, verilerin görsel olarak işlenmesi ve anlaşılması için kullanıldığı veri setleridir. Bu veri setleri, verilerin video veya resim formatında saklandığı ve çoklu ortam verileri içerdiği veri setleridir. Doğal Dil İşleme (Natural Language Processing) projeleri için metinler, verilerin dil olarak işlenmesi ve anlaşılması için kullanıldığı veri setleridir. Bu veri setleri, verilerin metin formatında saklandığı ve metin verileri içerdiği veri setleridir. Konuşma ve ses tanıma projeleri için sesler, verilerin ses olarak işlenmesi ve anlaşılması için kullanıldığı veri setleridir. Bu veri setleri, verilerin ses formatında saklandığı ve ses verileri içerdiği veri setleridir.
Veri seti, verilerin belirli bir sırayla düzenlendiği veri topluluğu dosyasıdır. Veri setleri, verilerin kaynağına, formatına, türüne ve kategorisine göre farklı şekillerde sınıflandırılabilir. Veri setleri, veri analizi, makine öğrenmesi ve yapay zekâ gibi alanlarda verileri işlemek için kullanılır. Veri setleri, verilerin toplanması ve hazırlanması aşamasında dikkatli olunması gereken önemli bir kısımdır.
Açık Veri Setleri
Açık veri setleri, herkesin erişebileceği ve kullanabileceği veri koleksiyonlarıdır. Bu veri setleri, bilimsel araştırma, makine öğrenmesi, yapay zekâ, veri analizi ve görselleştirme gibi çeşitli amaçlar için kullanılabilir. Açık veri setleri, farklı kaynaklardan elde edilebilir. Bu kaynaklardan bazıları şunlardır:
- Devletlerin Veri Setleri: Bu veri setleri, devlet kurumları veya hükümetler tarafından kamu yararına sunulan verilerdir. Bu veri setleri, ekonomi, sağlık, eğitim, çevre, ulaşım, güvenlik, kültür gibi farklı alanlarda veri içerir. Örneğin, ABD devlet kurumları açık veri setleri, Birleşik Krallık hükümeti açık veri setleri, Avrupa Birliği açık veri setleri, İstanbul Büyükşehir Belediyesi açık veri setleri, Türkiye İstatistik Kurumu açık veri setleri gibi kaynaklar devletlerin veri setlerine örnek olarak verilebilir.
- UCI Makine Öğrenmesi Deposu: Bu depo, Kaliforniya Üniversitesi Irvine (UCI) tarafından makine öğrenmesi ve yapay zekâ uygulamaları için yaygın olarak kullanılan veri setlerini barındıran bir veri seti koleksiyonudur. Bu depo, sınıflandırma, regresyon, kümeleme, zaman serisi analizi, doğal dil işleme, görüntü işleme gibi farklı makine öğrenmesi problemleri için uygun veri setleri içerir. UCI makine öğrenmesi deposuna bağlantı adresi ile erişilebilir.
- Kaggle: Bu, veri bilimcileri, makine öğrenmesi uzmanları ve yapay zekâ geliştiricileri için bir platformdur. Kaggle, hem veri setlerini hem de veri ile ilgili projeleri paylaşmak için bir ortam sağlar. Kaggle veri setleri, istatistiksel veriler, metin, ses ve bilgisayar görüşü gibi farklı türlerde veriler içerir. Kaggle veri setlerine bağlantı adresi ile erişilebilir.
- AWS Veri Setleri: Bu, Amazon Web Services (AWS) tarafından sunulan bir veri seti deposudur. AWS veri setleri, herkese açık olan veri setlerini aramak, erişmek, paylaşmak ve indirmek için bir platform sağlar. AWS veri setleri, biyoloji, kimya, fizik, astronomi, coğrafya, sosyoloji, ekonomi gibi farklı disiplinlerden veriler içerir. AWS veri setlerine bağlantı adresi ile erişilebilir.
- Google Dataset Search: Bu, Google tarafından sunulan bir veri seti arama motorudur. Kullanıcıların web üzerinde binlerce veri havuzuna yüklenen çok çeşitli veri setlerinden arama yapmasına olanak tanır. Arama motorunda bulunan tüm veriler istediğiniz amaç için kullanılamaz, bu nedenle lisansları ve kullanım kısıtlamaları kontrol edilmelidir. Google veri seti arama motoruna bağlantı adresi ile erişilebilir.
- Microsoft Research Open Data: Bu, Microsoft tarafından ücretsiz sunulan bir veri seti deposudur. Bu depo içinde görüntü işleme, doğal dil işleme ve veri bilimi için kullanılacak çeşitli veri setleri bulunur. Microsoft tarafından sunulan veri setlerini kullanmak ve indirmek için bağlantı adresi kullanılır.
1. Uygulama
Kaggle Notebook uygulaması, veri bilimi ve makine öğrenmesi projeleri için bir web tabanlı ortam sağlayan bir uygulamadır. Kaggle Notebook uygulamasını kullanmak için şu adımları izleyebilirsiniz:
- 1. Adım: Kaggle web sitesine girmek için web tarayıcınızda www.kaggle.com adresini yazın.
- 2. Adım: Yeni bir Notebook oluşturmak için Code sekmesine ve ardından New Notebook butonuna tıklayın. Bu şekilde, Kaggle size bulut tabanlı bir Notebook ortamı sunacaktır.
- 3. Adım: Notebook'unuza bir isim vermek için Notebook sayfasının sol üst köşesindeki varsayılan isme tıklayın ve istediğiniz ismi yazın.
- 4. Adım: Notebook'unuzu başkalarıyla paylaşmak için Share butonuna tıklayın. Bu buton, Notebook sayfasının sağ üst köşesinde bulunur.
- 5. Adım: Notebook'unuzu herkese açık veya özel olarak paylaşmak için Public veya Private seçeneklerinden birini seçin. Private seçerseniz, Add collaborators seçeneği ile Notebook'unuza erişebilecek kişileri belirleyebilirsiniz.
2. Uygulama
Kaggle veri setleri, Kaggle platformunda bulunan ve farklı konu, tür ve boyutlarda veriler içeren veri koleksiyonlarıdır. Kaggle veri setlerine erişmek, aramak ve Notebook'lara eklemek için şu adımları izleyebilirsiniz:
- 1. Adım: Bir veri seti aramak için Kaggle web sitesinde Datasets sekmesine tıklayın. Bu sekme, web sitesinin üst kısmında bulunur. Ardından, aramak istediğiniz anahtar kelimeleri arama kutusuna yazın. Örneğin, "covid-19" yazarak covid-19 ile ilgili veri setlerini arayabilirsiniz.
- 2. Adım: Arama sonuçlarını filtrelemek için arama kutusunun yanındaki Filters butonuna tıklayın. Bu buton, arama kutusunun sağ tarafında bulunur. Açılan pencerede, veri setlerini boyut, format, lisans, etiket, güncelleme tarihi gibi kriterlere göre filtreleyebilirsiniz. Örneğin, sadece CSV formatındaki veri setlerini görmek için File types seçeneğinden CSV'yi seçebilirsiniz.
- 3. Adım: Veri setleri listesinden ilginizi çeken bir veri seti seçin. Seçtiğiniz veri setinin sayfasında Data Explorer bölümüne gidin. Bu bölüm, sayfanın sol tarafında bulunur. Burada, veri setinin içerdiği dosyaları, tabloları, sütunları, satırları ve değerleri görebilir ve inceleyebilirsiniz. Ayrıca, veri setinin istatistiksel özelliklerini, dağılımlarını ve grafiklerini de görebilirsiniz.
- 4. Adım: Seçtiğiniz veri setini bilgisayarınıza indirmek için Download butonuna tıklayın. Bu buton, veri setinin sayfasının sağ üst köşesinde bulunur. Seçtiğiniz veri setini Kaggle Notebook içinde kullanmak için önce bir Notebook oluşturun. Notebook oluşturmak için Code sekmesine ve ardından New Notebook butonuna tıklayın. Notebook sayfasında Add data butonuna tıklayarak veri setini Notebook'unuza ekleyebilirsiniz. Bu buton, Notebook sayfasının sağ üst köşesinde bulunur.
NumPy Kütüphanesi
NumPy, Python programlama dilinde bilimsel hesaplamalar yapmak için kullanılan bir kütüphanedir. NumPy, açık kaynak kodlu bir projedir ve birçok matematiksel, istatistiksel ve mühendislik işlevi sunar. NumPy'ın en önemli özelliği, ndarray adı verilen çok boyutlu dizilerdir. Bu diziler, Python'ın kendi dizilerinden daha verimli, hızlı ve esnektir. NumPy dizileri, büyük veri setleri ile çalışmak, vektör ve matris işlemleri yapmak, lineer cebir, Fourier dönüşümü, rastgele sayı üretimi gibi işlemler için idealdir.
3. Uygulama
NumPy kütüphanesi, Python'da bilimsel hesaplamalar yapmak için kullanılan bir kütüphanedir. NumPy kütüphanesini kullanmak için önce import etmek gerekir. NumPy kütüphanesini import etmek ve NumPy dizisi oluşturmak için şu adımları izleyebilirsiniz:
- 1. Adım: Jupyter Notebook uygulamasını açın. Jupyter Notebook, Python kodlarını çalıştırmak ve sonuçlarını görmek için kullanılan bir web tabanlı ortamdır. Jupyter Notebook'u açtığınızda, ilk hücreye aşağıdaki kodu yazarak NumPy kütüphanesini import edin. NumPy kütüphanesi genellikle np takma adı ile import edilir.
python
import numpy as np
- 2. Adım: NumPy dizisi oluşturmak için np.array() fonksiyonunu kullanın. Bu fonksiyon, normal Python dizilerini veya listelerini NumPy dizilerine dönüştürür. Örneğin, aşağıdaki kod, [1,2,3] listesini bir NumPy dizisine dönüştürür.
python
np.array([1,2,3])
- 3. Adım: Bir NumPy dizisini bir değişkene atamak için eşitlik işaretini kullanın. Örneğin, aşağıdaki kod, [1,2,3] listesini bir NumPy dizisine dönüştürüp a değişkenine atar.
python
a = np.array([1,2,3])
NumPy dizilerinin avantajı, içindeki verilere göre kendisini tek tip olarak ayarlamasıdır. Aşağıdaki örnekte, dizi içine eklenen bir ondalık sayı, tam sayı olan diğer elemanları da ondalık sayı hâline dönüştürmektedir.
python
dizi = np.array([1,2,3,3.14])
dizi
NumPy dizilerini tanımlama sırasında dizideki tüm elemanları tek tipe dönüştürme işlemi gerçekleştirilebilir. dtype parametresi ile dizinin veri tipi belirlenebilir. Örneğin, aşağıdaki kod, [1,2,3,3.14] listesini bir NumPy dizisine dönüştürürken, tüm elemanları tam sayı olarak ayarlar.
python
dizi = np.array([1,2,3,3.14], dtype=int)
dizi
4. Uygulama
NumPy dizileri, çok boyutlu verileri depolamak ve işlemek için kullanılan veri yapılarıdır. NumPy dizileri, bir, iki veya daha fazla boyuta sahip olabilir. NumPy dizileri oluşturmak için şu adımları izleyebilirsiniz:
- 1. Adım: NumPy kütüphanesini import etmek için aşağıdaki kodu yazın.
python
import numpy as np
- 2. Adım: Bir boyutlu dizi oluşturmak için np.array() fonksiyonuna bir liste verin. Örneğin, aşağıdaki kod, [1,2,3] listesini bir boyutlu bir NumPy dizisine dönüştürür.
python
birboyut = np.array([1,2,3])
birboyut
- 3. Adım: İki boyutlu dizi oluşturmak için np.array() fonksiyonuna iç içe geçmiş listeler verin. Örneğin, aşağıdaki kod, [[1,2,3], [4,5,6]] listesini iki boyutlu bir NumPy dizisine dönüştürür.
python
ikiboyut = np.array([[1,2,3], [4,5,6]])
ikiboyut
- 4. Adım: Üç boyutlu dizi oluşturmak için np.array() fonksiyonuna daha da iç içe geçmiş listeler verin. Örneğin, aşağıdaki kod, [[[1,2,3], [4,5,6]], [[1,2,3], [4,5,6]]] listesini üç boyutlu bir NumPy dizisine dönüştürür.
python
ucboyut = np.array([[[1,2,3], [4,5,6]], [[1,2,3], [4,5,6]]])
ucboyut
NumPy İlk Yer Tutucular
NumPy, Python'da çok boyutlu dizilerle çalışmak için kullanılan bir kütüphanedir. Bazen, dizinin boyutu ve şekli bilinir, ancak elemanları bilinmez. Bu durumda, NumPy, daha sonra değiştirmek üzere dizileri belirli değerlerle doldurmak için bazı işlevler sunar. Bu işlevlere yer tutucu işlevleri denir. NumPy'da yer tutucu işlevleri şunlardır:
- np.zeros(): Bu işlev, tüm elemanları sıfır olan bir dizi oluşturur. Dizinin boyutu ve şekli bir parametre olarak verilir. Örneğin, aşağıdaki kod, 3x4 boyutunda sıfırlardan oluşan bir dizi oluşturur.
python
np.zeros((3,4))
- np.ones(): Bu işlev, tüm elemanları bir olan bir dizi oluşturur. Dizinin boyutu ve şekli bir parametre olarak verilir. Örneğin, aşağıdaki kod, 2x3 boyutunda birlerden oluşan bir dizi oluşturur.
python
np.ones((2,3))
- np.empty(): Bu işlev, rastgele değerler içeren bir dizi oluşturur. Dizinin boyutu ve şekli bir parametre olarak verilir. Örneğin, aşağıdaki kod, 2x2 boyutunda rastgele değerlerden oluşan bir dizi oluşturur.
python
np.empty((2,2))
- np.full(): Bu işlev, belirli bir değerle doldurulmuş bir dizi oluşturur. Dizinin boyutu, şekli ve doldurulacak değer parametre olarak verilir. Örneğin, aşağıdaki kod, 3x3 boyutunda 5 değeriyle doldurulmuş bir dizi oluşturur.
python
np.full((3,3), 5)
- np.arange(): Bu işlev, belirli bir aralıkta ve adımda artan veya azalan sayılardan oluşan bir dizi oluşturur. Başlangıç, bitiş ve adım değerleri parametre olarak verilir. Örneğin, aşağıdaki kod, 0'dan 10'a kadar 2'şer artan sayılardan oluşan bir dizi oluşturur.
python
np.arange(0, 10, 2)
- np.linspace(): Bu işlev, belirli bir aralıkta ve sayıda eşit aralıklı sayılardan oluşan bir dizi oluşturur. Başlangıç, bitiş ve sayı değerleri parametre olarak verilir. Örneğin, aşağıdaki kod, 0 ile 1 arasında 5 eşit aralıklı sayıdan oluşan bir dizi oluşturur.
python
np.linspace(0, 1, 5)
5. Uygulama
NumPy, Python'da çok boyutlu dizilerle çalışmak için kullanılan bir kütüphanedir. NumPy, dizileri belirli değerlerle doldurmak için bazı işlevler sunar. Bu işlevlere yer tutucu işlevleri denir. NumPy'da farklı şekillerde yer tutucu dizisi oluşturmak için şu adımları izleyebilirsiniz:
- 1. Adım: NumPy zeros fonksiyonu, tüm elemanları sıfır olan bir dizi oluşturur. Dizinin boyutu ve şekli bir parametre olarak verilir. Ayrıca, dizinin veri tipi de belirtilebilir. Örneğin, aşağıdaki kodlar, sıfırlardan oluşan farklı boyut ve tiplerde diziler oluşturur.
python
np.zeros(5) # 5 elemanlı bir boyutlu dizi
np.zeros((4,3)) # 4x3 boyutunda iki boyutlu dizi
np.zeros((4,3), dtype=int) # 4x3 boyutunda iki boyutlu tam sayı dizi
- 2. Adım: NumPy ones fonksiyonu, tüm elemanları bir olan bir dizi oluşturur. Dizinin boyutu ve şekli bir parametre olarak verilir. Ayrıca, dizinin veri tipi de belirtilebilir. Örneğin, aşağıdaki kodlar, birlerden oluşan farklı boyut ve tiplerde diziler oluşturur.
python
np.ones(5) # 5 elemanlı bir boyutlu dizi
np.ones((4,3)) # 4x3 boyutunda iki boyutlu dizi
np.ones((4,3), dtype=int) # 4x3 boyutunda iki boyutlu tam sayı dizi
- 3. Adım: NumPy full fonksiyonu, belirli bir değerle doldurulmuş bir dizi oluşturur. Dizinin boyutu, şekli ve doldurulacak değer parametre olarak verilir. Örneğin, aşağıdaki kod, 4x3 boyutunda 10 değeriyle doldurulmuş bir dizi oluşturur.
python
np.full((4,3), 10)
- 4. Adım: NumPy arange fonksiyonu, belirli bir aralıkta ve adımda artan veya azalan sayılardan oluşan bir dizi oluşturur. Başlangıç, bitiş ve adım değerleri parametre olarak verilir. Örneğin, aşağıdaki kod, 1'den 30'a kadar 2'şer artan sayılardan oluşan bir dizi oluşturur.
python
np.arange(1, 30, 2)
- 5. Adım: NumPy linspace fonksiyonu, belirli bir aralıkta ve sayıda eşit aralıklı sayılardan oluşan bir dizi oluşturur. Başlangıç, bitiş ve sayı değerleri parametre olarak verilir. Örneğin, aşağıdaki kod, 0 ile 10 arasında 5 eşit aralıklı sayıdan oluşan bir dizi oluşturur.
python
np.linspace(0, 10, num=5)
- 6. Adım: NumPy random fonksiyonu, belirli bir aralıkta rastgele sayılardan oluşan bir dizi oluşturur. Rastgele sayı üretmek için np.random modülü kullanılır. Bu modül, farklı rastgele sayı üretme yöntemleri sunar. Örneğin, np.random.randint() fonksiyonu, belirli bir aralıkta ve sayıda tam sayı üretir. Başlangıç, bitiş ve sayı değerleri parametre olarak verilir. Örneğin, aşağıdaki kodlar, 0 ile 10 arasında rastgele sayılardan oluşan farklı boyutlarda diziler oluşturur.
python
np.random.randint(0, 10, 5) # 5 elemanlı bir boyutlu dizi
np.random.randint(0, 10, (4,3)) # 4x3 boyutunda iki boyutlu dizi
NumPy Dizi İncelemesi
NumPy dizi incelemesi, NumPy kütüphanesi ile oluşturulan çok boyutlu dizilerin özelliklerini ve yapısını anlamak için kullanılan bir yöntemdir. NumPy dizisi hakkında detaylı bilgi edinmek için kullanılan özellikler şunlardır:
- shape: Bu özellik, dizinin kaç satır ve sütundan oluştuğunu gösterir. Örneğin, 3x4 boyutunda bir dizi oluşturalım:
python
import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a.shape)
Bu kodun çıktısı (3, 4) olacaktır. Bu, dizinin 3 satır ve 4 sütundan oluştuğunu gösterir.
- ndim: Bu özellik, dizinin kaç boyutlu olduğunu gösterir. Örneğin, yukarıdaki dizinin boyutunu öğrenmek için:
python
print(a.ndim)
Bu kodun çıktısı 2 olacaktır. Bu, dizinin 2 boyutlu olduğunu gösterir.
- size: Bu özellik, dizinin toplam eleman sayısını gösterir. Örneğin, yukarıdaki dizinin eleman sayısını öğrenmek için:
python
print(a.size)
Bu kodun çıktısı 12 olacaktır. Bu, dizinin 12 elemandan oluştuğunu gösterir.
- dtype: Bu özellik, dizinin elemanlarının veri tipini gösterir. Örneğin, yukarıdaki dizinin veri tipini öğrenmek için:
python
print(a.dtype)
Bu kodun çıktısı int64 olacaktır. Bu, dizinin elemanlarının 64 bitlik tam sayılar olduğunu gösterir.
- itemsize: Bu özellik, dizinin her bir elemanının bellekte kapladığı bayt sayısını gösterir. Örneğin, yukarıdaki dizinin her bir elemanının bellek boyutunu öğrenmek için:
python
print(a.itemsize)
Bu kodun çıktısı 8 olacaktır. Bu, dizinin her bir elemanının 8 bayt (64 bit) bellek kullandığını gösterir.
6. Uygulama
NumPy dizilerinin incelenmesinde kullanılan özelliklerle işlem yapmak için aşağıdaki işlem adımlarını takip ediniz.
1. Adım: NumPy shape özelliğini kullanarak bir dizinin her bir boyutundaki eleman sayısını öğrenme ve diziyi yeniden boyutlandırma işlemini gerçekleştiriniz.
- NumPy shape özelliği, dizinin şeklini gösteren bir tuple (demet) döndürür. Tuple'ın eleman sayısı, dizinin boyutuna eşittir. Tuple'ın her bir elemanı ise, dizinin ilgili boyutundaki eleman sayısını gösterir. Örneğin, aşağıdaki kodda a dizisinin shape özelliği (2, 3) olacaktır. Bu, dizinin 2 boyutlu olduğunu ve her boyutta 3 eleman olduğunu gösterir.
python
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
# (2, 3)
- NumPy shape özelliğini değiştirerek, diziyi yeniden boyutlandırmak mümkündür. Ancak, yeni shape'in eleman sayısı, orijinal shape'in eleman sayısına eşit olmalıdır. Aksi halde, ValueError hatası alınır. Örneğin, a dizisini (3, 2) şekline getirmek için:
python
a.shape = (3, 2)
print(a)
# [[1 2]
# [3 4]
# [5 6]]
- NumPy shape özelliğini değiştirmek yerine, reshape() metodu da kullanılabilir. Bu metod, diziyi yeniden boyutlandırır ve yeni bir dizi döndürür. Orijinal dizi ise değişmez. Örneğin, a dizisini (6, 1) şekline getirmek için:
python
b = a.reshape(6, 1)
print(b)
# [[1]
# [2]
# [3]
# [4]
# [5]
# [6]]
print(a)
# [[1 2]
# [3 4]
# [5 6]]
2. Adım: NumPy ndim özelliğini kullanarak bir dizinin boyutunu öğrenme işlemini gerçekleştiriniz.
- NumPy ndim özelliği, dizinin kaç boyutlu olduğunu gösteren bir tam sayı döndürür. Örneğin, aşağıdaki kodda b dizisinin ndim özelliği 1, c dizisinin ndim özelliği ise 2 olacaktır. Bu, b dizisinin tek boyutlu (vektör), c dizisinin ise iki boyutlu (matris) olduğunu gösterir.
python
b = np.array([1, 2, 3, 4, 5])
print(b.ndim)
# 1
c = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(c.ndim)
# 2
3. Adım: NumPy size özelliğini kullanarak bir dizinin toplam eleman sayısını öğrenme işlemini gerçekleştiriniz.
- NumPy size özelliği, dizinin toplam eleman sayısını gösteren bir tam sayı döndürür. Örneğin, aşağıdaki kodda d dizisinin size özelliği 5 olacaktır. Bu, dizinin 5 elemandan oluştuğunu gösterir.
python
d = np.array([1, 2, 3, 4, 5])
print(d.size)
# 5
4. Adım: NumPy dtype özelliğini kullanarak bir dizinin elemanlarının veri tipini öğrenme işlemini gerçekleştiriniz. NOT !!! NumPy dizisinde tüm elemanlar aynı veri tipine sahiptir.
- NumPy dtype özelliği, dizinin elemanlarının veri tipini gösteren bir nesne döndürür. NumPy dizisinde tüm elemanlar aynı veri tipine sahiptir. Örneğin, aşağıdaki kodda e dizisinin dtype özelliği int32, f dizisinin dtype özelliği ise float64 olacaktır. Bu, e dizisinin elemanlarının 32 bitlik tam sayılar, f dizisinin elemanlarının ise 64 bitlik ondalık sayılar olduğunu gösterir.
python
e = np.array([1, 2, 3, 4, 5])
print(e.dtype)
# int32
f = np.array([1.1, 2.2, 3.3])
print(f.dtype)
# float64
5. Adım: NumPy itemsize özelliğini kullanarak bir dizinin her bir elemanının bayt cinsinden değerini öğrenme işlemini gerçekleştiriniz.
- NumPy itemsize özelliği, dizinin her bir elemanının bellekte kapladığı bayt sayısını gösteren bir tam sayı döndürür. Örneğin, aşağıdaki kodda g dizisinin itemsize özelliği 4 olacaktır. Bu, dizinin her bir elemanının 4 bayt (32 bit) bellek kullandığını gösterir.
python
g = np.array([1, 2, 3])
print(g.itemsize)
# 4
NumPy İndeksleme ve Dilimleme
NumPy indeksleme ve dilimleme, NumPy dizileriyle çalışırken çok önemli ve kullanışlı iki işlemdir. Bu işlemler sayesinde, dizilerin istediğimiz bölümlerine veya elemanlarına kolayca ulaşabilir, değiştirebilir veya yeni diziler oluşturabiliriz. Şimdi bunların nasıl yapıldığına bakalım.
NumPy indeksleme, bir dizinin belirli bir elemanına veya alt kümesine erişmek için kullanılan bir yöntemdir. NumPy dizilerinin indeks numaraları 0'dan başlar ve dizinin boyutuna göre artar. Bir boyutlu dizilerde indeks numarası tek bir sayıdır ve dizinin sırasını belirtir. Örneğin, a = np.array([10, 20, 30, 40, 50]) dizisinde a[0] elemanı 10, a[4] elemanı 50'dir. İndeks numarası negatif de olabilir, bu durumda dizinin sonundan başa doğru sayılır. Örneğin, a[-1] elemanı 50, a[-3] elemanı 30'dur.
Çok boyutlu dizilerde ise indeks numarası birden fazla sayıdan oluşur ve dizinin her boyutunu belirtir. Örneğin, b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) dizisinde b[0, 0] elemanı 1, b[1, 2] elemanı 6'dır. İndeks numaraları virgülle ayrılır ve sırasıyla satır, sütun veya düzlem numaralarını gösterir. İndeks numaraları negatif de olabilir, bu durumda da dizinin sonundan başa doğru sayılır. Örneğin, b[-1, -1] elemanı 9, b[-2, -3] elemanı 4'tür.
NumPy dilimleme, bir dizinin belirli bir aralıktaki elemanlarına veya alt kümelerine erişmek için kullanılan bir yöntemdir. NumPy dilimleme işlemi, : işareti ile belirtilen başlangıç, bitiş ve adım değerlerini kullanır. Başlangıç değeri dahil, bitiş değeri hariçtir. Adım değeri ise aralıktaki elemanların kaçar kaçar atlanacağını belirtir. Örneğin, a = np.array([10, 20, 30, 40, 50]) dizisinde a[1:4] dilimi [20, 30, 40], a[0:5:2] dilimi [10, 30, 50] dizilerini verir. Dilimleme işlemi, çok boyutlu dizilerde de uygulanabilir. Örneğin, b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) dizisinde b[0:2, 1:3] dilimi [[2, 3], [5, 6]], b[:, ::-1] dilimi [[3, 2, 1], [6, 5, 4], [9, 8, 7]] dizilerini verir.
NumPy indeksleme ve dilimleme işlemleri, dizilerin elemanlarına veya alt kümelerine erişmenin yanı sıra, dizileri değiştirmek veya yeni diziler oluşturmak için de kullanılabilir. Örneğin, a = np.array([10, 20, 30, 40, 50]) dizisinde a[0] = 100 yaparak ilk elemanı 100'e değiştirebilir, b = a[1:3] yaparak yeni bir dizi oluşturabiliriz. Ancak, dikkat etmemiz gereken bir nokta, dilimleme işlemi ile oluşturulan yeni dizilerin, orijinal dizinin bir kopyası değil, bir görünümü (view) olduğudur. Yani, yeni diziyi değiştirdiğimizde, orijinal diziyi de değiştirmiş oluruz. Örneğin, b[0] = 200 yaptığımızda, a dizisinin de [100, 200, 30, 40, 50] olarak değiştiğini görürüz. Eğer, orijinal diziyi değiştirmeden yeni bir dizi oluşturmak istiyorsak, copy() metodunu kullanabiliriz. Örneğin, c = a[1:3].copy() yaparak, c dizisini değiştirdiğimizde, a dizisinin değişmediğini görürüz.
NumPy indeksleme ve dilimleme işlemleri, NumPy dizileriyle çalışırken çok önemli ve kullanışlı iki işlemdir. Bu işlemler sayesinde, dizilerin istediğimiz bölümlerine veya elemanlarına kolayca ulaşabilir, değiştirebilir veya yeni diziler oluşturabiliriz.
7. Uygulama
NumPy dizilerinde dilimleme işlemlerini yapmak için aşağıdaki adımları takip edebilirsiniz:
1. Adım: Bir boyutlu NumPy dizisi oluşturun ve dilimleme işlemlerini uygulayın. Örneğin, a = np.array([1,2,3,4,5,6]) dizisinde ilk üç elemanı seçmek için a[:3] yazabilirsiniz. Bu size [1,2,3] dizisini verecektir. Son iki elemanı seçmek için a[-2:] yazabilirsiniz. Bu size [5,6] dizisini verecektir. İkişer atlayarak elemanları seçmek için a[::2] yazabilirsiniz. Bu size [1,3,5] dizisini verecektir.
2. Adım: İki boyutlu NumPy dizisi oluşturun ve dilimleme işlemlerini uygulayın. Örneğin, b = np.array([[1,2,3], [4,5,6], [7,8,9]]) dizisinde ilk iki satırı ve ilk iki sütunu seçmek için b[:2, :2] yazabilirsiniz. Bu size [[1,2], [4,5]] dizisini verecektir. Son satırı ve son sütunu seçmek için b[-1:, -1:] yazabilirsiniz. Bu size [[9]] dizisini verecektir. Her satırdan tek sütun seçmek için b[:, ::2] yazabilirsiniz. Bu size [[1,3], [4,6], [7,9]] dizisini verecektir.
3. Adım: Üç boyutlu NumPy dizisi oluşturun ve dilimleme işlemlerini uygulayın. Örneğin, c = np.array([[[1,2,3], [4,5,6]], [[7,8,9], [10,11,12]]]) dizisinde ilk küpü seçmek için c[0] yazabilirsiniz. Bu size [[1,2,3], [4,5,6]] dizisini verecektir. Son küpten son iki elemanı seçmek için c[-1, -1, -2:] yazabilirsiniz. Bu size [11,12] dizisini verecektir. Her küpten ortadaki elemanı seçmek için c[:, 1, 1] yazabilirsiniz. Bu size [5,11] dizisini verecektir.
8. Uygulama
NumPy dizisinden dilimleme ile eleman seçme işlemi, belirli bir aralık veya adım boyutu ile dizinin bir kısmını veya tamamını almak için kullanılan bir yöntemdir. Bu işlem, dizinin başlangıç ve bitiş indekslerini belirterek veya iki nokta üst üste :)) sembolü kullanarak yapılabilir. Aşağıdaki işlem adımlarını takip ederek eleman seçimi yapınız.
1. Adım: 10 ile 30 arasında sayılardan oluşan bir NumPy dizisi oluşturmak için np.arange(10,30) fonksiyonunu kullanıyoruz. Bu fonksiyon, 10 dahil 30 hariç olmak üzere 1'er artan sayıları içeren bir dizi döndürür. Oluşturulan dizinin boyutu 20'dir.
2. Adım: Oluşturulan dizinin 0 ile 4 indeks numarası arasındaki elemanlara erişmek için x[0:4] veya x[:4] ifadesini kullanıyoruz. Bu ifade, dizinin 0 dahil 4 hariç olmak üzere ilk 4 elemanını alır. Bu elemanlar 10, 11, 12 ve 13'tür.
3. Adım: Oluşturulan dizinin 4 indeks numaralı elemanından son elemana kadar erişmek için x[4:] ifadesini kullanıyoruz. Bu ifade, dizinin 4 dahil son elemana kadar olan kısmını alır. Bu elemanlar 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ve 29'dur.
4. Adım: Oluşturulan dizinin 0 indeks numaralı elemanından başlayarak indeks numarası ikişer artarak 10 indeks numaralı elemana kadar erişmek için x[0:10:2] ifadesini kullanıyoruz. Bu ifade, dizinin 0 dahil 10 hariç olmak üzere her 2. elemanını alır. Bu elemanlar 10, 12, 14, 16 ve 18'dir..
9. Uygulama
NumPy, Python programlama dilinde sayısal hesaplamalar için kullanılan bir kütüphanedir. NumPy dizileri, aynı türdeki verileri depolayan çok boyutlu veri yapılarıdır. NumPy dizilerinde dilimleme, belirli bir aralıktaki dizi elemanlarını seçmek için kullanılan bir yöntemdir. Dilimleme işlemi için köşeli parantezler içinde satır ve sütun indekslerini belirtmek gerekir. Aşağıda verilen işlem adımlarını takip ederek dilimleme işlemini yapın.
1. Adım: İki boyutlu bir dizi oluşturunuz. y=np.random.randint(0,10,(4,4))
Bu adımda, 0 ile 10 arasında rastgele tam sayılar üreten np.random.randint fonksiyonunu kullanarak 4x4 boyutunda bir dizi oluşturuyoruz. Bu diziyi y değişkenine atıyoruz. Oluşturulan diziyi görmek için y yazıp çalıştırabilirsiniz. Örnek bir çıktı şöyle olabilir:
y = [[2 8 6 9]
[7 4 3 0]
[5 1 9 2]
[0 3 7 6]]
2. Adım: Oluşturulan dizinin ikinci satırının tüm sütunlarını seçme işlemini yapınız. y[1,:]
Bu adımda, y dizisinin ikinci satırını seçmek için köşeli parantezler içinde 1 yazıyoruz. Bu, dizinin ikinci satırının indeksini belirtir. Dizilerde indeksleme sıfırdan başlar, yani ilk satırın indeksi 0, ikinci satırın indeksi 1, üçüncü satırın indeksi 2 ve dördüncü satırın indeksi 3'tür. Tüm sütunları seçmek için ise virgül koyup iki nokta üst üste işaretini yazıyoruz. Bu, sütun indeksinin başlangıç ve bitiş değerlerini belirtmez, yani tüm sütunları kapsar. Bu şekilde yazdığımızda, y[1,:] ifadesi y dizisinin ikinci satırının tüm sütunlarını seçer. Bu ifadeyi yazıp çalıştırdığımızda, örnek bir çıktı şöyle olabilir:
y[1,:] = [7 4 3 0]
3. Adım: Oluşturulan dizinin ikinci sütununun tüm satırlarını seçme işlemini yapınız. y[:,1]
Bu adımda, y dizisinin ikinci sütununu seçmek için köşeli parantezler içinde virgül koyup 1 yazıyoruz. Bu, dizinin ikinci sütununun indeksini belirtir. Dizilerde indeksleme sıfırdan başlar, yani ilk sütunun indeksi 0, ikinci sütunun indeksi 1, üçüncü sütunun indeksi 2 ve dördüncü sütunun indeksi 3'tür. Tüm satırları seçmek için ise iki nokta üst üste işaretini yazıyoruz. Bu, satır indeksinin başlangıç ve bitiş değerlerini belirtmez, yani tüm satırları kapsar. Bu şekilde yazdığımızda, y[:,1] ifadesi y dizisinin ikinci sütununun tüm satırlarını seçer. Bu ifadeyi yazıp çalıştırdığımızda, örnek bir çıktı şöyle olabilir:
y[:,1] = [8 4 1 3]
4. Adım: Oluşturulan dizinin ilk iki satırı ile ilk üç sütununu seçme işlemini yapınız. y[0:2,0:3]
Bu adımda, y dizisinin ilk iki satırını seçmek için köşeli parantezler içinde 0:2 yazıyoruz. Bu, satır indeksinin başlangıç ve bitiş değerlerini belirtir. Başlangıç değeri dahil, bitiş değeri hariçtir. Yani 0:2, 0 ve 1 indeksli satırları seçer. İlk üç sütunu seçmek için ise virgül koyup 0:3 yazıyoruz. Bu da, sütun indeksinin başlangıç ve bitiş değerlerini belirtir. Başlangıç değeri dahil, bitiş değeri hariçtir. Yani 0:3, 0, 1 ve 2 indeksli sütunları seçer. Bu şekilde yazdığımızda, y[0:2,0:3] ifadesi y dizisinin ilk iki satırı ile ilk üç sütununu seçer. Bu ifadeyi yazıp çalıştırdığımızda, örnek bir çıktı şöyle olabilir:
y[0:2,0:3] = [[2 8 6]
[7 4 3]]
5. Adım: Oluşturulan dizinin ilk iki sütununu seçme işlemini yapınız. y[:,0:2]
Bu adımda, y dizisinin ilk iki sütununu seçmek için köşeli parantezler içinde virgül koyup 0:2 yazıyoruz. Bu, sütun indeksinin başlangıç ve bitiş değerlerini belirtir. Başlangıç değeri dahil, bitiş değeri hariçtir. Yani 0:2, 0 ve 1 indeksli sütunları seçer. Tüm satırları seçmek için ise iki nokta üst üste işaretini yazıyoruz. Bu, satır indeksinin başlangıç ve bitiş değerlerini belirtmez, yani tüm satırları kapsar. Bu şekilde yazdığımızda, y[:,0:2] ifadesi y dizisinin ilk iki sütununun tüm satırlarını seçer. Bu ifadeyi yazıp çalıştırdığımızda, örnek bir çıktı şöyle olabilir:
y[:,0:2] = [[2 8]
[7 4]
[5 1]
[0 3]]
6. Adım: Oluşturulan dizide 4 sayısından büyük değere sahip olan dizi elemanları için mantıksal seçim işlemini yapınız. y[y>4]
Bu adımda, y dizisinde 4 sayısından büyük değere sahip olan dizi elemanlarını seçmek için köşeli parantezler içinde y>4 yazıyoruz. Bu, y dizisinin her bir elemanını 4 sayısı ile karşılaştırarak bir mantıksal değer döndürür. Eğer eleman 4'ten büyükse True, değilse False olur. Bu şekilde yazdığımızda, y[y>4] ifadesi y dizisinde 4'ten büyük olan elemanları bir dizi olarak döndürür. Bu ifadeyi yazıp çalıştırdığımızda, örnek bir çıktı şöyle olabilir:
y[y>4] = [8 6 9 7 5 9 7 6]
NumPy Yeniden Boyutlandırma
NumPy, Python programlama dilinde bilimsel hesaplamalar için kullanılan bir kütüphanedir. NumPy dizisi, aynı türden verileri tutan çok boyutlu bir veri yapısıdır. NumPy dizilerinin boyutu, dizinin kaç eleman içerdiğini belirler. NumPy dizilerinin şekli ise, dizinin kaç boyutlu olduğunu ve her boyutta kaç eleman bulunduğunu gösterir.
NumPy dizilerini yeniden boyutlandırmak, dizinin şeklini değiştirmek anlamına gelir. NumPy dizilerini yeniden boyutlandırmak için reshape fonksiyonu kullanılır. reshape fonksiyonu, bir NumPy dizisini ve yeni bir şekil parametresi alır. reshape fonksiyonu, dizinin elemanlarını yeni şekle uyacak şekilde yeniden düzenler ve yeni bir NumPy dizisi döndürür. reshape fonksiyonu, dizinin eleman sayısını değiştirmez, sadece dizinin boyutlarını değiştirir.
reshape fonksiyonunun kullanımı için bir örnek verelim. Öncelikle, 12 elemanlı bir NumPy dizisi oluşturalım:
python
import numpy as np
dizi = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
print(dizi)
print(dizi.shape)
Bu kodun çıktısı şöyle olacaktır:
python
[ 1 2 3 4 5 6 7 8 9 10 11 12]
(12,)
Görüldüğü gibi, dizi tek boyutlu bir NumPy dizisidir ve 12 eleman içerir. Şimdi, bu diziyi reshape fonksiyonu ile iki boyutlu bir NumPy dizisine dönüştürelim. reshape fonksiyonuna yeni bir şekil parametresi olarak (3, 4) verelim. Bu, diziyi 3 satır ve 4 sütundan oluşan bir matrise dönüştürecektir.
python
yeni_dizi = dizi.reshape(3, 4)
print(yeni_dizi)
print(yeni_dizi.shape)
Bu kodun çıktısı şöyle olacaktır:
python
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
(3, 4)
Görüldüğü gibi, yeni_dizi iki boyutlu bir NumPy dizisidir ve 3 satır ve 4 sütun içerir. reshape fonksiyonu, dizinin elemanlarını sırayla yeni şekle uyacak şekilde yerleştirmiştir. reshape fonksiyonu, dizinin eleman sayısını değiştirmediği için, yeni şeklin çarpımı eski şekle eşit olmalıdır. Yani, (3, 4) şeklindeki bir dizinin eleman sayısı 3 x 4 = 12 olmalıdır.
reshape fonksiyonu, NumPy dizilerinin şeklini değiştirmek için kullanışlı bir araçtır. NumPy dizilerinin şeklini değiştirmek, verileri farklı şekillerde görselleştirmek, analiz etmek veya işlemek için gerekebilir. NumPy kütüphanesi, reshape fonksiyonunun yanı sıra, NumPy dizilerinin şeklini değiştirmek için başka fonksiyonlar da sunar. Bu fonksiyonlar hakkında daha fazla bilgi için, NumPy kütüphanesinin resmi belgelerine bakabilirsiniz.
10. Uygulama
NumPy dizilerini yeniden boyutlandırma işlemini anlamak için aşağıdaki adımları takip ediniz.
1. Adım: Bir boyutlu NumPy dizisi oluşturunuz. 0 ile 15 arasındaki sayıları içeren bir dizi oluşturalım.
python
import numpy as np
dizi = np.arange(0, 16)
dizi
2. Adım: Oluşturduğunuz diziyi iki boyutlu hâle getiriniz. 4 satır ve 4 sütundan oluşan bir matris şeklinde yeniden boyutlandıralım.
python
yenidizi2d = dizi.reshape(4, 4)
yenidizi2d
3. Adım: Oluşturduğunuz diziyi üç boyutlu hâle getiriniz. 2 katman, 4 satır ve 4 sütundan oluşan bir küp şeklinde yeniden boyutlandıralım.
python
yenidizi3d = dizi.reshape(2, 4, 4)
yenidizi3d
4. Adım: Oluşturduğunuz üç boyutlu veya iki boyutlu bir diziyi bir boyutlu hâle getiriniz. -1 parametresini kullanarak dizinin tüm elemanlarını tek bir boyutta sıralayalım.
python
yenidizi3d.reshape(-1)
yenidizi2d.reshape(-1)
NumPy Dizileri Birleştirme, Ayrıştırma ve Sıralama
- Birleştirme: Birleştirme işlemi, iki veya daha fazla NumPy dizisini tek bir dizi halinde bir araya getirmektir. Birleştirme işlemi için dizilerin aynı boyutlarda olması gerekir. Örneğin, iki boyutlu iki dizi birleştirilecekse, her ikisinin de aynı sayıda satır ve sütuna sahip olması gerekir. Birleştirme işlemi için NumPy kütüphanesinde concatenate fonksiyonu kullanılır. Bu fonksiyonun ilk parametresi birleştirilecek dizilerin bir listesi, ikinci parametresi ise birleştirme yönünü belirtir. Birleştirme yönü, axis olarak adlandırılır ve 0 veya 1 değerini alabilir. axis=0 ise diziler dikey olarak, yani satır bazında birleştirilir. axis=1 ise diziler yatay olarak, yani sütun bazında birleştirilir. Birleştirme işlemi sonucunda, yeni dizi, birleştirilen dizilerin elemanlarını sırasıyla içerir.
11. Uygulama
1. Adım: Bir boyutlu NumPy dizisi oluşturmak için np.array() fonksiyonunu kullanabiliriz. Bu fonksiyonun içine bir liste vererek diziyi tanımlayabiliriz. Örneğin, x=np.array([1,2,3]) şeklinde bir kod yazarak x adında bir NumPy dizisi oluşturabiliriz. Aynı şekilde, y=np.array([4,5,6]) yazarak y adında başka bir NumPy dizisi oluşturabiliriz. Bu iki diziyi birleştirmek için np.concatenate() fonksiyonunu kullanabiliriz. Bu fonksiyonun içine birleştirmek istediğimiz dizileri bir liste olarak veririz. Örneğin, t=np.concatenate([x,y]) yazarak x ve y dizilerini birleştirip t adında yeni bir NumPy dizisi oluşturabiliriz.
2. Adım: Bir başka NumPy dizisi oluşturmak için yine np.array() fonksiyonunu kullanabiliriz. Örneğin, z=np.array([7,8,9]) yazarak z adında bir NumPy dizisi oluşturabiliriz. Bu diziyi t dizisiyle birleştirmek için yine np.concatenate() fonksiyonunu kullanabiliriz. Bu sefer, birleştirmek istediğimiz dizileri [t,z] şeklinde bir liste olarak veririz. Örneğin, t=np.concatenate([t,z]) yazarak t ve z dizilerini birleştirip t adında yeni bir NumPy dizisi oluşturabiliriz.
3. Adım: İki boyutlu NumPy dizileri oluşturmak için np.array() fonksiyonunu kullanabiliriz. Bu fonksiyonun içine iç içe listeler vererek diziyi tanımlayabiliriz. Örneğin, a=np.array([[1,2,3],[4,5,6]]) şeklinde bir kod yazarak a adında bir NumPy dizisi oluşturabiliriz. Bu dizinin boyutu (2,3)'tür, yani iki satır ve üç sütundan oluşur. Aynı şekilde, b=np.array([[7,8,9],[10,11,12]]) yazarak b adında başka bir NumPy dizisi oluşturabiliriz. Bu dizinin boyutu da (2,3)'tür. Bu iki diziyi birleştirmek için np.concatenate() fonksiyonunu kullanabiliriz. Bu fonksiyonun içine birleştirmek istediğimiz dizileri bir liste olarak veririz. Örneğin, c=np.concatenate([a,b]) yazarak a ve b dizilerini birleştirip c adında yeni bir NumPy dizisi oluşturabiliriz. Bu dizinin boyutu (4,3)'tür, yani dört satır ve üç sütundan oluşur.
4. Adım: İki boyutlu NumPy dizilerini sütun bazında birleştirmek için np.concatenate() fonksiyonunu kullanabiliriz. Bu fonksiyonun ikinci bir parametresi vardır, axis. Bu parametre, birleştirme işleminin hangi eksen üzerinde yapılacağını belirler. Eğer axis=0 ise, birleştirme işlemi satır bazında yapılır. Eğer axis=1 ise, birleştirme işlemi sütun bazında yapılır. Ön tanımlı olarak axis=0 değerindedir. Örneğin, d=np.concatenate([a,b],axis=1) yazarak a ve b dizilerini sütun bazında birleştirip d adında yeni bir NumPy dizisi oluşturabiliriz. Bu dizinin boyutu (2,6)'tır, yani iki satır ve altı sütundan oluşur.
- Ayrıştırma: Ayrıştırma işlemi, bir NumPy dizisini belirli noktalardan bölerek birden çok alt diziye ayırmaktır. Ayrıştırma işlemi için NumPy kütüphanesinde split fonksiyonu kullanılır. Bu fonksiyonun ilk parametresi ayrıştırılacak olan diziyi, ikinci parametresi hangi indeks numaralı elemanların ayrıştırılacağını, üçüncü parametresi ise satır veya sütun bazında bölümleme yapılacağını belirtir. Ayrıştırma işlemi sonucunda, yeni diziler, ayrıştırılan dizinin belirtilen bölümlerini içerir.
12. Uygulama
Aşağıdaki adımları takip ederek NumPy dizilerini ayrıştırma işlemlerini gerçekleştirebilirsiniz.
1. Adım: Aşağıdaki kodlamalarda bir NumPy dizisi oluşturunuz. Split fonksiyonu ile oluşturulan diziyi
dört parçaya ayırınız.
x=np.array([21,22,23,24,25,26,27,28,29])
np.split(x,4)
2. Adım: Aşağıdaki kodlarda indeks numaralarını kullanarak diziyi belirli aralıkta ayrıştırma işlemini gerçekleştiriniz. np.split(x,[3,7])
Bu işlem diziyi üç alt diziye böler: x[0:3], x[3:7] ve x[7:].
3. Adım: Aşağıdaki kodlarda ayrıştırılan alt dizileri farklı dizilere aktarma işlemini gerçekleştiriniz.
a,b,c=np.split(x,[3,7])
a
b
c
Bu işlem a dizisine x[0:3], b dizisine x[3:7] ve c dizisine x[7:] değerlerini atar.
4. Adım: Aşağıdaki kodlamalarda iki boyutlu bir dizi oluşturarak oluşturulan bu dizinin ayrıştırma işlemini gerçekleştiriniz.
y=np.arange(20).reshape(5,4)
y
Bu işlem 5x4 boyutunda bir dizi oluşturur.
5. Adım: Aşağıdaki kodlarda ayrıştırılan iki boyutlu diziyi satır bazında alt dizilere aktarma işlemini gerçekleştiriniz.
d,e=np.vsplit(y,2)
d
e
Bu işlem y dizisini iki eşit alt diziye bölerek d ve e dizilerine atar.
6. Adım: Aşağıdaki kodlarda ayrıştırılan iki boyutlu diziyi sütun bazında alt dizilere aktarma işlemini gerçekleştiriniz.
f,g=np.hsplit(y,2)
f
g
Bu işlem y dizisini iki eşit alt diziye bölerek f ve g dizilerine atar.
- Sıralama: Sıralama işlemi, bir NumPy dizisini belirli bir kurala göre düzenlemektir. Sıralama işlemi için NumPy kütüphanesinde sort fonksiyonu kullanılır. Bu fonksiyonun ilk parametresi sıralanacak olan diziyi, ikinci parametresi ise sıralama yönünü belirtir. Sıralama yönü, axis olarak adlandırılır ve 0, 1 veya -1 değerini alabilir. axis=0 ise dizinin sütunları sıralanır, axis=1 ise dizinin satırları sıralanır, axis=-1 ise dizinin tüm elemanları sıralanır. Sıralama işlemi sonucunda, yeni dizi, sıralanmış elemanları içerir. Sıralama kuralı, dizinin elemanlarının veri tipine göre belirlenir. Eğer dizinin elemanları sayısal ise, küçükten büyüğe veya büyükten küçüğe sıralanır. Eğer dizinin elemanları alfabetik ise, A'dan Z'ye veya Z'den A'ya sıralanır..
13. Uygulama
Aşağıdaki adımları takip ederek NumPy dizilerinin elemanlarını sıralama işlemlerini gerçekleştirebilirsiniz.
1. Adım: Aşağıdaki kodlarda 0 ile 50 arasında rastgele 8 sayıdan oluşan bir boyutlu NumPy dizisi oluşturma işlemini gerçekleştiriniz.
x=np.random.randint(1,50,8)
Bu işlem x dizisine 0 ile 50 arasında rastgele seçilen 8 tam sayı atar.
2. Adım: Aşağıdaki kodlarda oluşturulan diziyi sıralama işlemini gerçekleştiriniz.
np.sort(x)
Bu işlem x dizisinin elemanlarını küçükten büyüğe doğru sıralar ve yeni bir dizi döndürür.
3. Adım: Sıralama işleminin kalıcı olması için aşağıdaki kodlamaları yapınız.
x.sort()
Bu işlem x dizisinin elemanlarını küçükten büyüğe doğru sıralar ve x dizisini değiştirir.
4. Adım: İki boyutlu dizi sıralaması için aşağıdaki kodlamaları yazınız.
y=np.random.randint(1,50,[3,3])
Bu işlem y dizisine 0 ile 50 arasında rastgele seçilen 3x3 boyutunda bir matris atar.
5. Adım: Oluşturulan diziyi satır bazında sıralamak için aşağıdaki kodlamaları yazınız. np.sort(y,axis=1)
Bu işlem y dizisinin her satırını kendi içinde küçükten büyüğe doğru sıralar ve yeni bir dizi döndürür.
6. Adım: Oluşturulan diziyi sütun bazında sıralamak için aşağıdaki kodlamaları yazınız. np.sort(y,axis=0)
Bu işlem y dizisinin her sütununu kendi içinde küçükten büyüğe doğru sıralar ve yeni bir dizi döndürür.
NumPy Operatörler, Matematiksel ve İstatistiksel Fonksiyonlar
NumPy, Python programlama dilinde bilimsel hesaplamalar için kullanılan bir kütüphanedir. NumPy dizileri, çok boyutlu veri yapılarıdır ve üzerlerinde çeşitli operatörler, matematiksel ve istatistiksel fonksiyonlar uygulanabilir. Bu sayede, dizilerdeki elemanlar arasında aritmetik ve mantıksal işlemler yapılabilir.
Aritmetik operatörler, dizilerdeki elemanlara toplama, çıkarma, çarpma, bölme, üs alma gibi işlemler uygulamak için kullanılır. Örneğin, iki NumPy dizisi a ve b olsun. Bu dizilerin elemanları arasında aritmetik işlemler yapmak için şu operatörleri kullanabiliriz:
- a + b: dizilerin elemanları arasında toplama işlemi yapar.
- a - b: dizilerin elemanları arasında çıkarma işlemi yapar.
- a * b: dizilerin elemanları arasında çarpma işlemi yapar.
- a / b: dizilerin elemanları arasında bölme işlemi yapar.
- a ** b: dizilerin elemanları arasında üs alma işlemi yapar.
Mantıksal operatörler, dizilerdeki elemanlara karşılaştırma veya koşul işlemleri uygulamak için kullanılır. Örneğin, iki NumPy dizisi a ve b olsun. Bu dizilerin elemanları arasında mantıksal işlemler yapmak için şu operatörleri kullanabiliriz:
- a == b: dizilerin elemanlarının eşit olup olmadığını kontrol eder.
- a != b: dizilerin elemanlarının eşit olmadığını kontrol eder.
- a < b: dizilerin elemanlarının küçük olup olmadığını kontrol eder.
- a > b: dizilerin elemanlarının büyük olup olmadığını kontrol eder.
- a <= b: dizilerin elemanlarının küçük veya eşit olup olmadığını kontrol eder.
- a >= b: dizilerin elemanlarının büyük veya eşit olup olmadığını kontrol eder.
Matematiksel ve istatistiksel fonksiyonlar, dizilerdeki elemanlara veya dizilere bütün olarak bazı matematiksel veya istatistiksel işlemler uygulamak için kullanılır. Örneğin, bir NumPy dizisi a olsun. Bu dizide veya dizinin belirli bir ekseninde matematiksel veya istatistiksel işlemler yapmak için şu fonksiyonları kullanabiliriz:
- np.sum(a): dizinin tüm elemanlarının toplamını hesaplar.
- np.mean(a): dizinin tüm elemanlarının ortalamasını hesaplar.
- np.min(a): dizinin tüm elemanlarının en küçüğünü bulur.
- np.max(a): dizinin tüm elemanlarının en büyüğünü bulur.
- np.std(a): dizinin tüm elemanlarının standart sapmasını hesaplar.
- np.var(a): dizinin tüm elemanlarının varyansını hesaplar.
Bu fonksiyonların axis adlı bir parametresi vardır. Bu parametre, işlemin hangi eksen üzerinde yapılacağını belirler. Örneğin, axis=0 ise, işlem dizinin sütunları üzerinde yapılır. axis=1 ise, işlem dizinin satırları üzerinde yapılır. axis=None ise, işlem dizinin tüm elemanları üzerinde yapılır.
14. Uygulama
NumPy dizileri ile aritmetiksel ve mantıksal işlemler yapmak için şu adımları izleyebilirsiniz:
1. Adım: Bir NumPy dizisi tanımlayınız. Örneğin, y = np.arange(2, 12) y
2. Adım: Tanımladığınız dizide aritmetiksel işlemler yapınız. Örneğin, y+3
y-8
y/4
y*2
y**3
3. Adım: Tanımladığınız dizide mantıksal işlemler yapınız. Örneğin, y[y>5]
y[y<=9]
y[y==7].
NumPy, Python programlama dilinde bilimsel hesaplamalar yapmak için kullanılan bir kütüphanedir. NumPy, çok boyutlu diziler, matrisler ve bunlar üzerinde işlem yapabilen fonksiyonlar sunar. NumPy, matematiksel problemleri çözebilecek çok sayıda fonksiyon bulundurur. Bu matematiksel fonksiyonlar şunları içerir:
- Trigonometrik fonksiyonlar: Bu fonksiyonlar, üçgenlerin kenarları ve açıları arasındaki ilişkileri tanımlayan fonksiyonlardır. Örneğin, sinüs, kosinüs, tanjant, kotanjant, sekant, kosekant gibi fonksiyonlar trigonometrik fonksiyonlardır. NumPy, bu fonksiyonları np.sin(), np.cos(), np.tan(), np.cot(), np.sec(), np.csc() gibi fonksiyonlarla sağlar. Ayrıca, ters trigonometrik fonksiyonlar, hiperbolik trigonometrik fonksiyonlar ve bunların tersleri de NumPy'da mevcuttur. Bu fonksiyonlar, açıları radyan cinsinden alır ve verir. NumPy, radyan ile derece arasında dönüşüm yapmak için np.deg2rad() ve np.rad2deg() fonksiyonlarını da sunar.
- Aritmetik fonksiyonlar: Bu fonksiyonlar, temel matematiksel işlemleri gerçekleştiren fonksiyonlardır. Örneğin, toplama, çıkarma, çarpma, bölme, üs alma, karekök alma, mutlak değer alma gibi fonksiyonlar aritmetik fonksiyonlardır. NumPy, bu fonksiyonları np.add(), np.subtract(), np.multiply(), np.divide(), np.power(), np.sqrt(), np.abs() gibi fonksiyonlarla sağlar. Ayrıca, iki sayının en büyük ortak bölenini, en küçük ortak katını, kalanını, bölümünü, yuvarlanmış bölümünü hesaplamak için de NumPy'da fonksiyonlar vardır. Bu fonksiyonlar, np.gcd(), np.lcm(), np.mod(), np.divmod(), np.floor_divide() gibi fonksiyonlardır.
- Logaritmik fonksiyonlar: Bu fonksiyonlar, bir sayının başka bir sayının üssü olarak ifade edilmesini sağlayan fonksiyonlardır. Örneğin, 10'un üssü 2 ise 100'dür. Bu durumda, 100'ün 10 tabanındaki logaritması 2'dir. NumPy, logaritma hesaplamak için np.log() fonksiyonunu sunar. Bu fonksiyon, e tabanındaki doğal logaritmayı hesaplar. e, matematikte yaklaşık olarak 2.71828 olan bir sabittir. NumPy, 10 tabanındaki logaritmayı hesaplamak için np.log10() fonksiyonunu, 2 tabanındaki logaritmayı hesaplamak için np.log2() fonksiyonunu sağlar. Ayrıca, istenilen bir tabanda logaritma hesaplamak için np.logbase() fonksiyonunu da kullanabilirsiniz. NumPy, logaritmanın tersi olan üslü fonksiyonu da np.exp() fonksiyonuyla sağlar.
Bu matematiksel fonksiyonlar, NumPy kütüphanesinin sunduğu fonksiyonlardan sadece bir kısmıdır. NumPy, ayrıca istatistiksel fonksiyonlar, lineer cebir fonksiyonları, rastgele sayı üretme fonksiyonları, sinyal işleme fonksiyonları gibi daha birçok fonksiyon sunar. NumPy, matematiksel problemleri çözmek için güçlü ve esnek bir araçtır.
15. Uygulama

Aritmetik operatör kullanmak yerine matematiksel fonksiyonlar kullanarak işlemler yapmak için aşağıdaki işlem adımlarını takip edebilirsiniz.
1. Adım: İki adet NumPy dizisi oluşturunuz. Örneğin, a=np.array([5,10,15]) ve b=np.array([2,4,6]) dizilerini oluşturabilirsiniz.
2. Adım: NumPy add fonksiyonunu kullanarak toplama işlemlerini yapınız. Örneğin, np.add(a,3) ile a dizisinin her elemanına 3 ekleyebilirsiniz. np.add(a,b) ile a ve b dizilerinin aynı konumdaki elemanlarını toplayabilirsiniz.
3. Adım: NumPy subtract fonksiyonunu kullanarak çıkarma işlemlerini yapınız. Örneğin, np.subtract(a,3) ile a dizisinin her elemanından 3 çıkarabilirsiniz. np.subtract(a,b) ile a ve b dizilerinin aynı konumdaki elemanlarını birbirinden çıkarabilirsiniz.
4. Adım: NumPy multiply fonksiyonunu kullanarak çarpma işlemlerini yapınız. Örneğin, np.multiply(a,3) ile a dizisinin her elemanını 3 ile çarpabilirsiniz. np.multiply(a,b) ile a ve b dizilerinin aynı konumdaki elemanlarını birbiriyle çarpabilirsiniz.
5. Adım: NumPy power fonksiyonunu kullanarak üs alma işlemlerini yapınız. Örneğin, np.power(a,2) ile a dizisinin her elemanının karesini alabilirsiniz. np.power(a,b) ile a dizisinin her elemanını b dizisinin aynı konumdaki elemanının kuvveti olarak alabilirsiniz.
Bu adımları takip ederek, a ve b dizileri için aşağıdaki sonuçları elde edebilirsiniz.
| Fonksiyon | Sonuç |
| --- | --- |
| np.add(a,3) | [ 8 13 18] |
| np.add(a,b) | [ 7 14 21] |
| np.subtract(a,3) | [ 2 7 12] |
| np.subtract(a,b) | [ 3 6 9] |
| np.multiply(a,3) | [15 30 45] |
| np.multiply(a,b) | [10 40 90] |
| np.power(a,2) | [ 25 100 225] |
| np.power(a,b) | [ 25 1000 50625] |
19. UYGULAMA
NumPy trigonometrik fonksiyonları ile işlemler yapmak için aşağıdaki işlem adımlarını takip edebilirsiniz.
1. Adım: Değerleri verilen bir NumPy dizisi oluşturunuz.
c = np.array([10,20,40,80,100,140,160])
2. Adım: Oluşturulan dizinin sinüs değerlerini bulma işlemini yapınız.
np.sin(c*np.pi/180)
3. Adım: Oluşturulan dizinin kosinüs değerlerini bulma işlemini yapınız.
np.cos(c*np.pi/180)
4. Adım: Oluşturulan dizinin tanjant değerlerini bulma işlemini yapınız.
np.tan(c*np.pi/180)
Bu adımları uyguladığınızda, aşağıdaki sonuçları elde edersiniz.
| c | sin(c) | cos(c) | tan(c) |
|---| --------| --------| --------|
| 10 | 0.1736 | 0.9848 | 0.1763 |
| 20 | 0.3420 | 0.9397 | 0.3639 |
| 40 | 0.6428 | 0.7660 | 0.8391 |
| 80 | 0.9848 | 0.1736 | 5.6713 |
| 100 | 0.9848 | -0.1736 | -5.6713 |
| 140 | 0.7660 | -0.6428 | -1.1918 |
| 160 | 0.3420 | -0.9397 | -0.3639 |
Bu sonuçlar, NumPy dizisinin değerlerinin derece cinsinden olduğunu varsaymaktadır. Eğer radyan cinsinden olsaydı, np.pi/180 çarpanını kullanmazdınız.
NumPy dizileri, Python programlama dilinde çok boyutlu verileri depolamak ve işlemek için kullanılan bir kütüphanedir. NumPy dizileri içindeki verilerin analiz edilmesi için istatistiksel fonksiyonlar kullanılır. Bu fonksiyonlar, bir dizi içindeki verilerin dağılımı, merkezi eğilimi, değişkenliği ve ilişkisi gibi özellikleri ölçmek için yararlıdır. Bu fonksiyonlardan bazıları şunlardır:
- En büyük ve en küçük değerleri bulma: NumPy dizilerindeki en büyük ve en küçük değerleri bulmak için np.max() ve np.min() fonksiyonları kullanılır. Bu fonksiyonlar, bir dizi veya bir dizi listesi verildiğinde, tüm veriler arasındaki en büyük veya en küçük değeri döndürür. Ayrıca, axis parametresi ile belirli bir boyuta göre en büyük veya en küçük değerleri bulmak da mümkündür. Örneğin, np.max(a, axis=0) fonksiyonu, a dizisinin sütunları boyunca en büyük değerleri döndürür.
- Standart sapma ve varyans: Standart sapma ve varyans, bir dizi içindeki verilerin ortalama değerinden ne kadar uzaklaştığını gösteren istatistiksel ölçülerdir. Standart sapma, verilerin ortalama değerinden olan uzaklıkların kareköküdür. Varyans ise, verilerin ortalama değerinden olan uzaklıkların karesinin ortalamasıdır. NumPy dizilerindeki standart sapma ve varyansı hesaplamak için np.std() ve np.var() fonksiyonları kullanılır. Bu fonksiyonlar, bir dizi veya bir dizi listesi verildiğinde, tüm verilerin standart sapmasını veya varyansını döndürür. Ayrıca, axis parametresi ile belirli bir boyuta göre standart sapma veya varyansı hesaplamak da mümkündür. Örneğin, np.std(a, axis=1) fonksiyonu, a dizisinin satırları boyunca standart sapmayı döndürür.
- Temel istatistiksel fonksiyonlar: NumPy dizilerindeki verilerin merkezi eğilimi ve dağılımını özetlemek için kullanılan diğer istatistiksel fonksiyonlar da vardır. Bunlardan bazıları şunlardır:
- np.mean(): Bir dizi veya bir dizi listesi verildiğinde, verilerin aritmetik ortalamasını döndürür. axis parametresi ile belirli bir boyuta göre ortalamayı hesaplamak da mümkündür.
-np.median(): Bir dizi veya bir dizi listesi verildiğinde, verilerin ortanca değerini döndürür. Ortanca değer, verilerin sıralandığında ortada kalan değerdir. axis parametresi ile belirli bir boyuta göre ortancayı hesaplamak da mümkündür.
- np.sum(): Bir dizi veya bir dizi listesi verildiğinde, verilerin toplamını döndürür. axis parametresi ile belirli bir boyuta göre toplamı hesaplamak da mümkündür.
- np.cumsum(): Bir dizi veya bir dizi listesi verildiğinde, verilerin kümülatif toplamını döndürür. Kümülatif toplam, verilerin baştan sona doğru toplanarak elde edilen ara değerlerdir. axis parametresi ile belirli bir boyuta göre kümülatif toplamı hesaplamak da mümkündür.
- np.percentile(): Bir dizi veya bir dizi listesi verildiğinde, verilerin belirli bir yüzdelik dilimindeki değerini döndürür. Yüzdelik dilim, verilerin sıralandığında belirli bir yüzdeye karşılık gelen değerdir. Örneğin, np.percentile(a, 50) fonksiyonu, a dizisinin ortanca değerini döndürür. axis parametresi ile belirli bir boyuta göre yüzdelik dilimi hesaplamak da mümkündür.
-np.corrcoef(): İki veya daha fazla dizi verildiğinde, diziler arasındaki korelasyon katsayılarını döndürür. Korelasyon katsayısı, iki değişken arasındaki ilişkinin yönünü ve gücünü ölçen bir istatistiksel değerdir. Korelasyon katsayısı -1 ile 1 arasında bir değer alır. -1, tam ters yönlü bir ilişkiyi; 0, hiçbir ilişkiyi; 1, tam aynı yönlü bir ilişkiyi gösterir. np.corrcoef(a, b) fonksiyonu, a ve b dizileri arasındaki korelasyon katsayısını döndürür.
NumPy dizileri içindeki verilerin analiz edilmesi için istatistiksel fonksiyonlar kullanmak, verilerin özelliklerini anlamak ve veri bilimi, makine öğrenimi, yapay zeka gibi alanlarda veriler üzerinde işlem yapmak için önemlidir. NumPy kütüphanesi, bu fonksiyonları hızlı ve kolay bir şekilde kullanmamızı sağlar.
16. Uygulama
Aşağıdaki işlem adımlarını takip ederek NumPy istatistiksel fonksiyonlarının kullanım işlemini yapabilirsiniz.
1. Adım: 0 ile 100 arasında rastgele sayılardan oluşan 10x3 bir NumPy dizisi oluşturunuz.
x=np.random.randint(0,101,([10,3]))
Örnek bir dizi şöyle olabilir:
x = [[ 5 9 7]
[ 8 6 4]
[ 2 1 3]
[ 9 8 7]
[ 6 5 4]
[ 7 6 5]
[ 4 3 2]
[ 3 2 1]
[ 8 7 6]
[ 9 8 7]]
2. Adım: Oluşturulan dizinin elemanları içinde en büyük ve en küçük değerleri bulmak için max ve min fonksiyonlarını kullanınız.
x.max()
x.min()
Örnek bir çıktı şöyle olabilir:
x.max() = 9
x.min() = 1
3. Adım: Oluşturulan dizinin tamamının veya belirtilen eksenlerinin toplamını bulmak için sum fonksiyonunu kullanınız.
x.sum()
x.sum(axis=0)
x.sum(axis=1)
Örnek bir çıktı şöyle olabilir:
x.sum() = 168
x.sum(axis=0) = [61 49 46]
x.sum(axis=1) = [21 18 6 24 15 18 9 6 21 24]
4. Adım: Oluşturulan dizinin elemanları içinde belirli eksende en büyük ve en küçük değerleri bulmak için max ve min fonksiyonlarını kullanınız.
x.max(axis=0)
x.max(axis=1)
x.min(axis=0)
x.min(axis=1)
Örnek bir çıktı şöyle olabilir:
x.max(axis=0) = [9 9 7]
x.max(axis=1) = [9 8 3 9 6 7 4 3 8 9]
x.min(axis=0) = [2 1 1]
x.min(axis=1) = [5 4 1 7 4 5 2 1 6 7]
5. Adım: Oluşturulan dizinin tamamının ve belirtilen eksenlerinin ortalamasını bulmak için mean fonksiyonunu kullanınız.
x.mean()
x.mean(axis=0)
x.mean(axis=1)
Örnek bir çıktı şöyle olabilir:
x.mean() = 5.6
x.mean(axis=0) = [6.1 4.9 4.6]
x.mean(axis=1) = [7. 6. 2. 8. 5. 6. 3. 2. 7. 8.]
6. Adım: Oluşturulan dizinin ortalamaya göre ne kadar değişkenlik göstereceğini gösteren varyansını bulmak için var fonksiyonunu kullanınız.
x.var()
x.var(axis=0)
x.var(axis=1)
Örnek bir çıktı şöyle olabilir:
x.var() = 5.04
x.var(axis=0) = [4.49 6.89 4.44]
x.var(axis=1) = [2.67 2.67 0.67 0.67 0.67 0.67 0.67 0.67 0.67 0.67]
7. Adım: Oluşturulan dizinin ortalamaya göre ne kadar saptığını gösteren standart sapmasını bulmak için std fonksiyonunu kullanınız.
x.std()
x.std(axis=0)
x.std(axis=1)
Örnek bir çıktı şöyle olabilir:
x.std() = 2.245
x.std(axis=0) = [2.118 2.626 2.108]
x.std(axis=1) = [1.633 1.633 0.816 0.816 0.816 0.816 0.816 0.816 0.816 0.816]
Pandas Kütüphanesi
Pandas kütüphanesi, Python programlama dilinde veri analizi yapmak için tasarlanmış bir kütüphanedir. Açık kaynak kodlu ve ücretsizdir. Pandas kütüphanesi, farklı kaynaklardan veri okumak, verileri düzenlemek, filtrelemek, gruplamak, birleştirmek, istatistiksel analizler yapmak, görselleştirmek gibi pek çok işlemi kolayca yapmamızı sağlar. Pandas kütüphanesi, iki temel veri yapısı kullanır: Seri ve DataFrame.
Seri, tek boyutlu, etiketli ve indeksli bir veri yapısıdır. Seri içindeki verilerin hepsi aynı veri tipine sahip olmalıdır. Örneğin, bir seri sadece sayısal değerler, sadece metinsel değerler veya sadece mantıksal değerler içerebilir. Seri, bir Python listesi, sözlüğü veya NumPy dizisi gibi veri kaynaklarından oluşturulabilir. Seri, indeks numaraları veya etiketleri ile erişilebilir. Seri, verileri hızlı ve verimli bir şekilde işlemek için optimize edilmiştir.
DataFrame, iki boyutlu, etiketli ve indeksli bir veri yapısıdır. DataFrame, bir veya daha fazla seri içerebilir. DataFrame içindeki veriler, farklı veri tiplerine sahip olabilir. Örneğin, bir DataFrame, sayısal, metinsel ve mantıksal değerler içeren sütunlardan oluşabilir. DataFrame, bir Python listesi, sözlüğü, NumPy dizisi, CSV dosyası, Excel dosyası veya veri tabanı tablosu gibi veri kaynaklarından oluşturulabilir. DataFrame, sütun isimleri veya indeks numaraları ile erişilebilir. DataFrame, verileri tablo şeklinde göstermek, sıralamak, gruplamak, birleştirmek gibi işlemler için uygundur.
17. Uygulama
Aşağıdaki işlem adımlarını takip ederek Pandas kütüphanesini yükleme ve Pandas serisi oluşturma işlemlerini yapabilirsiniz.
1. Adım: Pandas kütüphanesini yükleme işlemini yapınız.
import pandas as pd
2. Adım: Pandas serisine eklemek için bir boyutlu dizi oluşturunuz.
data = ["Ali","Veli","Can","Aylin"]
3. Adım: Oluşturulan diziden Pandas kütüphanesini kullanarak bir seri oluşturunuz.
s1 = pd.Series(data)
s1
4. Adım: Sayılardan oluşan bir Pandas serisi oluşturunuz.
s2 = pd.Series([5,6,7,8])
s2
5. Adım: Karakterlerden oluşan bir NumPy dizisinden Pandas serisi oluşturunuz.
dizi = np.array(['p','y','t','h','o','n'])
s3 = pd.Series(dizi)
s3
6. Adım: Python sözlüğü üzerinden seri oluşturma işlemini yapınız.
dict = {"us":"Amerika","uk":"İngiltere","jp":"Japonya"}
s4 = pd.Series(dict)
s4
Pandas DataFrame, iki boyutlu veri tablolarıdır. Bu, verilerin satırlar ve sütunlar şeklinde düzenlenmiş bir şekilde dizilmesi anlamına gelir. Pandas DataFrame, verilerin yanı sıra satır ve sütunların etiketlerini de içerir. Pandas DataFrame oluşturmak için pandas kütüphanesinin DataFrame adlı bir fonksiyonunu kullanabilirsiniz. Örneğin, şöyle bir DataFrame oluşturabilirsiniz:
python
import pandas as pd
data = {
"ad": ["Ali", "Veli", "Ayşe"],
"soyad": ["Yılmaz", "Demir", "Kaya"],
"yas": [25, 32, 28]
}
df = pd.DataFrame(data)
print(df)
Bu kodda, data adlı bir sözlük tanımlanmıştır. Bu sözlükte, ad ve soyad adında iki anahtar ve Ali, Veli ve Ayşe adında üç değer bulunmaktadır. Bu değerler de yas adında bir değere sahiptir. Bu değerlerin türü int64'dır. df adında bir DataFrame nesnesi oluşturulmuştur. Bu nesne, data sözlüğündeki her anahtar-değer çiftini satır olarak alır ve bunları sütun olarak alır. Son olarak, print fonksiyonu ile DataFrame'i ekrana yazdırır.
18. Uygulama
Pandas DataFrame oluşturma işlemleri, Python'da tablo şeklinde veri yapıları oluşturmak için kullanılan bir kütüphanedir. Pandas DataFrame, sütun ve satırlardan oluşan iki boyutlu bir veri yapısıdır. Pandas DataFrame oluşturmak için farklı yöntemler vardır. Aşağıda, bu yöntemlerden birine ait adımları paylaşıyorum.
1. Adım: Bir Python listesi oluşturunuz. liste=[4,5,6,"d","e","f"]
Bu adımda, Python'da bir liste oluşturuyoruz. Liste, farklı veri tiplerini içerebilir. Liste, köşeli parantezler içinde virgülle ayrılmış elemanlardan oluşur.
2. Adım: Oluşturulan listeyi kullanarak bir Pandas DataFrame oluşturunuz. df=pd.DataFrame(liste)
Bu adımda, Pandas kütüphanesini pd olarak içe aktarıyoruz. pd.DataFrame() fonksiyonu ile listeyi bir DataFrame'e dönüştürüyoruz. df değişkenine atıyoruz.
3. Adım: Oluşturulan DataFrame’de sütun için etiket oluşturma işlemini yapınız. df=pd.DataFrame(liste, columns=["Veriler"])
Bu adımda, DataFrame'in sütununa bir isim veriyoruz. columns parametresi ile sütun ismini belirtiyoruz. Bu örnekte, sütun ismi "Veriler" olarak seçtik.
4. Adım: İki boyutlu bir liste oluşturunuz. data = [['Can',11],['Zeynep',14],['Ahmet',15]]
Bu adımda, iki boyutlu bir liste oluşturuyoruz. İki boyutlu liste, iç içe geçmiş listelerden oluşur. Bu örnekte, her bir iç liste, bir öğrencinin adını ve yaşını içeriyor.
5. Adım: Oluşturulan iki boyutlu listeden bir DataFrame oluşturma işlemini yapınız. df = pd.DataFrame(data,columns=['Ad','Yaş'])
Bu adımda, iki boyutlu listeyi bir DataFrame'e dönüştürüyoruz. columns parametresi ile sütun isimlerini belirtiyoruz. Bu örnekte, sütun isimleri "Ad" ve "Yaş" olarak seçtik.
6. Adım: Bir liste sözlüğünden DataFrame oluşturma işlemini yapınız. data = {'Ad':['Can', 'Zeynep', 'Ahmet'],'Yaş':[11,14,15]}
Bu adımda, bir liste sözlüğü oluşturuyoruz. Liste sözlüğü, anahtar-değer çiftlerinden oluşur. Anahtarlar, sütun isimlerini, değerler ise sütun değerlerini içeren listeleri temsil eder. Bu örnekte, "Ad" ve "Yaş" anahtarlarına karşılık gelen listeleri oluşturduk.
df = pd.DataFrame(data)
df
Bu adımda, liste sözlüğünü bir DataFrame'e dönüştürüyoruz. df değişkenine atıyoruz. df'i yazdırıyoruz.
7. Adım: DataFrame indeks değerlerini değiştirme işlemini yapınız. df = pd.DataFrame(data,index=['Ogrenci1','Ogrenci2', 'Ogrenci3']) df
Bu adımda, DataFrame'in indeks değerlerini değiştiriyoruz. index parametresi ile indeks değerlerini belirtiyoruz. Bu örnekte, indeks değerleri "Ogrenci1", "Ogrenci2" ve "Ogrenci3" olarak seçtik. df'i yazdırıyoruz.
PYTHON KODU
# Pandas kütüphanesini içe aktarma
import pandas as pd
# Bir Python listesi oluşturma
liste = [4,5,6,"d","e","f"]
# Listeyi bir DataFrame'e dönüştürme
df = pd.DataFrame(liste)
# DataFrame'in sütununa isim verme
df = pd.DataFrame(liste, columns=["Veriler"])
# İki boyutlu bir liste oluşturma
data = [['Can',11],['Zeynep',14],['Ahmet',15]]
# İki boyutlu listeyi bir DataFrame'e dönüştürme
df = pd.DataFrame(data,columns=['Ad','Yaş'])
# Bir liste sözlüğü oluşturma
data = {'Ad':['Can', 'Zeynep', 'Ahmet'],'Yaş':[11,14,15]}
# Liste sözlüğünü bir DataFrame'e dönüştürme
df = pd.DataFrame(data)
# DataFrame'i yazdırma
print(df)
# DataFrame'in indeks değerlerini değiştirme
df = pd.DataFrame(data,index=['Ogrenci1','Ogrenci2','Ogrenci3'])
# DataFrame'i yazdırma
print(df)
Pandas Seri / DataFrame İncelemesi, verilerin nasıl düzenlendiğini, analiz edildiğini ve görselleştirildiğini anlamak için kullanılan bir yöntemdir. Pandas, Python programlama dilinde veri işleme için popüler bir kütüphanedir. Pandas, verileri tablo şeklinde saklar ve manipüle etmek için çeşitli fonksiyonlar sunar. Bu fonksiyonlardan bazıları şunlardır:
- pandas.Series: Bir sütun veya dizinin pandas nesnesidir. Bir sütun veya dizinin her elemanına bir değer atayabilir ve bu değeri istediğiniz şekilde işleyebilirsiniz.
- pandas.DataFrame: Bir tablonun pandas nesnesidir. Bir tablonun satır ve sütunlarını belirleyebilir ve bu satır ve sütunlara erişebilirsiniz.
- pandas.to_frame(): Bir pandas.Series veya pandas.DataFrame nesnesini bir DataFrame nesnesine dönüştürmenizi sağlar.
- pandas.DataFrame.plot(): Bir DataFrame nesnesinin grafiğini oluşturmanızı sağlar. Grafiği çeşitli şekillerde (çubuk, pasta, nokta vb.) gösterebilirsiniz.
Pandas Seri / DataFrame İncelemesi yapmak için, öncelikle verilerinizi bir DataFrame nesnesine dönüştürmeniz gerekir. Sonra, bu DataFrame nesnesinin özelliklerini (sütun isimleri, veri tipleri, boyutlar vb.) inceleyebilirsiniz. Ayrıca, bu DataFrame nesnesinin içindeki verileri istediğiniz şekilde filtreleyebilir, gruplayabilir, toplayabilir veya hesaplayabilirsiniz. Son olarak, bu işlemleri yaparken sonuçları grafik olarak görselleştirebilirsiniz.
Örneğin, aşağıdaki kod parçası 2020 yılında Türkiye'deki ortalama hava sıcaklığına ilişkin verileri içeren bir DataFrame nesnesi oluşturur:
python
import pandas as pd
# Verileri okuyalım
df = pd.read_csv("turkey_weather.csv")
# Verilerin ilk beş satırını yazdıralım
print(df.head())
Bu kod parçasının çıktısı şöyledir:
date temp humidity wind speed pressure
0 2020-01-01 -2.5 88 9.8 1016
1 2020-01-02 -1.8 89 9.7 1014
2 2020-01-03 0.3 90 9.6 1013
3 2020-01-04 1.6 91 9.5 1012
4 2020-01-05 -1.7 ... ... ...
Bu DataFrame nesnesinin özelliklerini incelemek için şu komutları kullanabilirsiniz:
python
# Sütun isimlerini yazdıralım
print(df.columns)
# Veri tiplerini yazdıralım
print(df.dtypes)
# Boyutlarını yazdıralım
print(df.shape)
# Satır sayısını yazdıralım
print(df.size)
Bu komutların çıktısı şöyledir:
Index(['date', 'temp', 'humidity', 'wind speed', 'pressure'], dtype='object')
date object
temp float64
humidity float64
wind speed float64
pressure float64
dtype: object
(5 rows x 5 columns)
(5 rows x ... columns)
(5 rows x ... columns)
(5 rows x ... columns)
5 ...
Name: date, dtype: int64
(5 rows x ... columns)
Bu DataFrame nesnesinin içindeki verileri incelemek için şu komutları kullanabilirsiniz:
python
# Tüm satırları yazdıralım (head())
print(df.tail())
# Tüm sütunları yazdıralım (columns())
print(df.columns.tolist())

18. Uygulama
Pandas Seri / DataFrame inceleme işlemleri yapmak için aşağıdaki adımları takip edin.
1. Adım: 1 ile 100 arasında rastgele sayılardan oluşan iki boyutlu bir NumPy dizisi oluşturunuz.
data=np.random.randint(1,100,size=(3,3))
2. Adım: Oluşturulan NumPy dizisinden Pandas DataFrame oluşturunuz. df=pd.DataFrame(data, columns=["x1","x2","x3"])
3. Adım: Oluşturulan DataFrame’in indeks, veri türü ve bellek bilgilerini görüntüleme işlemlerini yapınız. df.info()
4. Adım: Oluşturulan DataFrame’in satır ve sütun bilgilerini görüntüleme işlemlerini yapınız. df.axes
5. Adım: Oluşturulan DataFrame’in boyut bilgilerini görüntüleme işlemini yapınız. df.shape
6. Adım: Oluşturulan DataFrame’in boyutunu görüntüleme işlemini yapınız. df.ndim
7. Adım: Oluşturulan DataFrame’in eleman sayısını görüntüleme işlemini yapınız. df.size
8. Adım: Oluşturulan DataFrame’in içindeki eleman değerlerini görüntüleme işlemini yapınız.
df.values
9. Adım: Oluşturulan DataFrame’in ilk 5 satırını görüntüleme işlemini yapınız.
df.head()
10. Adım: Oluşturulan DataFrame’in son 5 satırını görüntüleme işlemini yapınız.
df.tail()
Bu adımları kendi değerlerinize göre değiştirerek farklı sonuçlar elde edebilirsiniz.
Örneğin, data = np.random.randint(10,20,size=(3,4)) şeklinde bir NumPy dizisi oluştursanız, df.head() size 5 satır verirken, df.tail() size 5 satır vermez.
Ayrıca, data = np.random.randint(1,100,size=(3,3)) şeklinde bir NumPy dizisi oluştursanız, df.values size [0] x [0] x [0] x [0] = 9 x 9 x 9 x 9 = 6561 eleman değerine sahiptir.
Python Kodu
Python kodunu yazmak için aşağıdaki adımları takip edebilirsiniz.
1. Adım: NumPy kütüphanesini içe aktarın.
python
import numpy as np
2. Adım: 1 ile 100 arasında rastgele sayılardan oluşan iki boyutlu bir NumPy dizisi oluşturun.
python
data = np.random.randint(1,100,size=(3,3))
3. Adım: Pandas kütüphanesini içe aktarın.
python
import pandas as pd
4. Adım: Oluşturulan NumPy dizisinden Pandas DataFrame oluşturun.
python
df = pd.DataFrame(data, columns=["x1","x2","x3"])
5. Adım: Oluşturulan DataFrame’in indeks, veri türü ve bellek bilgilerini görüntüleyin.
python
df.info()
6. Adım: Oluşturulan DataFrame’in satır ve sütun bilgilerini görüntüleyin.
python
df.axes
7. Adım: Oluşturulan DataFrame’in boyut bilgilerini görüntüleyin.
python
df.shape
8. Adım: Oluşturulan DataFrame’in boyutunu görüntüleyin.
python
df.ndim
9. Adım: Oluşturulan DataFrame’in eleman sayısını görüntüleyin.
python
df.size
10. Adım: Oluşturulan DataFrame’in içindeki eleman değerlerini görüntüleyin.
python
df.values
11. Adım: Oluşturulan DataFrame’in ilk 5 satırını görüntüleyin.
python
df.head()
12. Adım: Oluşturulan DataFrame’in son 5 satırını görüntüleyin.
python
df.tail()
Pandas Seri / DataFrame Seçimi
Pandas, Python programlama dilinde veri analizi için kullanılan popüler bir kütüphanedir. Pandas, verileri tablo şeklinde tutan ve kolayca işlem yapılabilen iki temel veri yapısı sunar: Seri ve DataFrame.
- Seri, tek boyutlu, etiketli bir veri dizisidir. Her bir veriye bir indeks numarası veya bir etiket atanır. Seriler, sayısal, metinsel veya karmaşık veriler içerebilir. Seriler, Python listeleri, sözlükleri veya NumPy dizileri gibi diğer veri yapılarından oluşturulabilir. Seriler, pd.Series(data, index, name) şeklinde tanımlanır. Örnek:
python
import pandas as pd
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri)
Çıktı:
a 1
b 2
c 3
d 4
Name: Sayılar, dtype: int64
- DataFrame, iki boyutlu, etiketli bir veri tablosudur. Her bir sütun, farklı bir veri tipi içerebilen bir Seri olarak düşünülebilir. DataFrame'ler, Python listeleri, sözlükleri, NumPy dizileri veya Seriler gibi diğer veri yapılarından oluşturulabilir. DataFrame'ler, pd.DataFrame(data, index, columns) şeklinde tanımlanır. Örnek:
python
import pandas as pd
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df)
Çıktı:
İsim Yaş Meslek
a Ali 25 Mühendis
b Ayşe 32 Öğretmen
c Mehmet 18 Öğrenci
d Zeynep 27 Avukat
Pandas, verilerin seçim işleminde esnek birçok yöntem sunar. Seçme işlemi ile veriler içinden istenilen kısımlar alınarak gösterilebilir veya yeni bir veri yapısı oluşturulabilir. Pandas'ta veri seçimi için kullanılan bazı yöntemler şunlardır:
- Köşeli parantez operatörü ([]): Bu operatör, Seri veya DataFrame'in belirli bir indeks veya etikete göre veri döndürmesini sağlar. Örnek:
python
# Seri'den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri["a"]) # a etiketli veriyi döndürür
print(seri[0]) # 0 indeksli veriyi döndürür
print(seri[["a", "c"]]) # a ve c etiketli verileri döndürür
print(seri[[0, 2]]) # 0 ve 2 indeksli verileri döndürür
# DataFrame'den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df["İsim"]) # İsim sütununu döndürür
print(df[["İsim", "Meslek"]]) # İsim ve Meslek sütunlarını döndürür
print(df["a":"c"]) # a ile c arasındaki satırları döndürür
- loc ve iloc öznitelikleri: Bu öznitelikler, Seri veya DataFrame'in belirli bir etiket veya indeks aralığına göre veri döndürmesini sağlar. loc, etiketlere göre, iloc, indekslere göre seçim yapar. Örnek:
python
# Seri'den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri.loc["a"]) # a etiketli veriyi döndürür
print(seri.iloc[0]) # 0 indeksli veriyi döndürür
print(seri.loc["a":"c"]) # a ile c arasındaki verileri döndürür
print(seri.iloc[0:3]) # 0 ile 3 arasındaki verileri döndürür
# DataFrame'den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df.loc["a"]) # a etiketli satırı döndürür
print(df.iloc[0]) # 0 indeksli satırı döndürür
print(df.loc["a", "İsim"]) # a etiketli satırın İsim sütunundaki veriyi döndürür
print(df.iloc[0, 0]) # 0 indeksli satırın 0 indeksli sütunundaki veriyi döndürür
print(df.loc["a":"c", "İsim":"Yaş"]) # a ile c arasındaki satırların İsim ile Yaş arasındaki sütunlarını döndürür
print(df.iloc[0:3, 0:2]) # 0 ile 3 arasındaki satırların 0 ile 2 arasındaki sütunlarını döndürür
- Koşullu seçim: Bu yöntem, Seri veya DataFrame'in belirli bir koşulu sağlayan verileri döndürmesini sağlar. Koşul, bir mantıksal operatör veya bir fonksiyon olabilir. Örnek:
python
# Seri'den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri[seri > 2]) # 2'den büyük olan verileri döndürür
print(seri[seri % 2 == 0]) # Çift olan verileri döndürür
print(seri[lambda x: x ** 2 > 5]) # Kareleri 5'ten büyük olan verileri döndürür
# DataFrame'den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df[df["Yaş"] > 25]) # Yaşı 25'ten büyük olan satırları döndürür
print(df[df["Meslek"].str.contains("t")]) # Mesleği t harfi içeren satırları döndürür
print(df[df.apply(lambda x: x["Yaş"] / len(x["İsim"]) > 5, axis=1)]) # Yaşı ile isim uzunluğu oranı 5'ten büyük olan satırları döndürür.
19. Uygulama
DataFrame'lerin elemanları üzerinde seçme işlemini yapmak için, şu adımları izleyebilirsiniz:
- Öncelikle, pandas kütüphanesini içe aktarın: import pandas as pd
- Sonra, seçmek istediğiniz DataFrame'yi oluşturun veya okuyun: df = pd.DataFrame(...) veya df = pd.read_csv(...)
- Ardından, seçmek istediğiniz elemanları belirleyin. Bunun için iki yöntem kullanabilirsiniz:
- Sütun isimleriyle seçmek için: df['sütun_ismi'] veya df.sütun_ismi
- Boolean koşullarıyla seçmek için: df[df['koşul'] == True] veya df[df['koşul'] > 10]
- Son olarak, seçilen elemanları istediğiniz şekilde işleyin veya yazdırın.
Örnek olarak, aşağıdaki DataFrame'i okuyalım ve sadece hızı 60'dan büyük olan Pokemon'ları gösterelim.
python
# pokemon_tablo isminde bir dataframe yapımız olsun
pokemon_table = pd.read_csv('[6](https://raw.githubusercontent.com/erkansirin78/datasets/master/pokemon.csv), usecols=['name', 'hız'])
# hızı 60'dan büyük olan Pokemon'ları bulalım
pokemon_table[df['hız'] > 60]
Bu kodu çalıştırdığımızda, şöyle bir çıktı alırız:
name hız
0 Bulbasaur 60
1 Charmander 70
2 Squirtle 60
3 Pikachu 80
4 Onix 100
Pandas Seri / DataFrame Birleştirme
Pandas, Python'da veri analizi yapmak için kullanılan bir kütüphanedir. Pandas, verileri tablo şeklinde tutan Seri ve DataFrame adlı iki temel veri yapısı sunar. Bu veri yapılarını birleştirmek için farklı metotlar vardır. Bunlardan bazıları şunlardır:
- concat(): Bu metot, DataFrame'leri yatay veya dikey olarak birleştirmek için kullanılır. Yani, DataFrame'leri birbirinin altına veya yanına ekler. Örneğin, aşağıdaki iki DataFrame'i birleştirmek için concat() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayşe", "Mehmet"], "yaş": [25, 30, 35]})
df2 = pd.DataFrame({"isim": ["Zeynep", "Ahmet", "Fatma"], "yaş": [28, 32, 40]})
df3 = pd.concat([df1, df2]) # df1 ve df2'yi alt alta birleştirir
df4 = pd.concat([df1, df2], axis=1) # df1 ve df2'yi yan yana birleştirir
- merge(): Bu metot, DataFrame'leri ortak bir sütun veya indeks üzerinde birleştirmek için kullanılır. Yani, DataFrame'leri birbirine bağlayan bir anahtar değer vardır. Örneğin, aşağıdaki iki DataFrame'i birleştirmek için merge() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayşe", "Mehmet"], "yaş": [25, 30, 35], "şehir": ["Ankara", "İstanbul", "İzmir"]})
df2 = pd.DataFrame({"isim": ["Ali", "Ayşe", "Mehmet"], "meslek": ["Mühendis", "Öğretmen", "Doktor"]})
df3 = pd.merge(df1, df2, on="isim") # df1 ve df2'yi isim sütunu üzerinde birleştirir
- join(): Bu metot, DataFrame'leri bir anahtar sütun veya bir indeks üzerinde birleştirmek için kullanılır. Ancak, merge() metodu ile farklı olarak, join() metodu DataFrame'lerin indekslerini kullanarak birleştirme yapabilir. Örneğin, aşağıdaki iki DataFrame'i birleştirmek için join() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayşe", "Mehmet"], "yaş": [25, 30, 35]}, index=["a", "b", "c"])
df2 = pd.DataFrame({"şehir": ["Ankara", "İstanbul", "İzmir"], "meslek": ["Mühendis", "Öğretmen", "Doktor"]}, index=["a", "b", "c"])
df3 = df1.join(df2) # df1 ve df2'yi indekslerine göre birleştirir.

20. Uygulama
İki DataFrame nesnesini concat metodunu kullanarak birleştirme işlemi yapmak için aşağıdaki işlem adımlarını uygulayın.
1. Adım: İki adet rastgele sayılardan oluşan 5x4’lük NumPy dizisi oluşturunuz.
python
rastgele1=np.random.randint(1,10,size=(5,4))
rastgele2=np.random.randint(10,20,size=(5,4))
2. Adım: Oluşturulan NumPy dizilerinden DataFrame oluşturunuz ve sütun adlarını değiştiriniz.
python
df1=pd.DataFrame(rastgele1,columns=["a","b","c","d"])
df2=pd.DataFrame(rastgele2,columns=["a","b","c","d"])
3. Adım: Oluşturulan DataFrame nesnelerini concat metodunu kullanarak birleştirme işlemini yapınız.
python
df=pd.concat([df1,df2])
df
4. Adım: Birleştirme işlemi sonucunda indeks numaralarını düzenlemek için concat metodunun ignore_index parametresini kullanınız.
python
df=pd.concat([df1,df2], ignore_index=True)
df
5. Adım: Farklı sütun ismine sahip olan DataFrame nesnelerini birleştirme işlemi için oluşturulan ikinci DataFrame nesnesinin sütun ismini değiştiriniz.
python
df2.columns=["a","b","e","f"]
df=pd.concat([df1,df2],ignore_index=True)
df
6. Adım: İki DataFrame nesnesinde ortak olan sütun adlarına göre birleştirme işlemi için concat metodunun join parametresini kullanınız.
python
df=pd.concat([df1,df2],ignore_index=True, join="inner")
df
Verilen adımları takip ederek, rastgele sayılardan oluşturulan iki DataFrame nesnesini concat metodunu kullanarak birleştirme işlemi yapmak için aşağıdaki Python kodunu yazabilirsiniz:
# Pandas kütüphanesini içe aktarma
import pandas as pd
# NumPy kütüphanesini içe aktarma
import numpy as np
# İki adet rastgele sayılardan oluşan 5x4’lük NumPy dizisi oluşturma
rastgele1 = np.random.randint(1,10,size=(5,4))
rastgele2 = np.random.randint(10,20,size=(5,4))
# Oluşturulan NumPy dizilerinden DataFrame oluşturma ve sütun adlarını değiştirme
df1 = pd.DataFrame(rastgele1,columns=["a","b","c","d"])
df2 = pd.DataFrame(rastgele2,columns=["a","b","c","d"])
# Oluşturulan DataFrame nesnelerini concat metodunu kullanarak birleştirme işlemi yapma
df = pd.concat([df1,df2])
# Birleştirme işlemi sonucunda indeks numaralarını düzenlemek için concat metodunun ignore_index parametresini kullanma
df = pd.concat([df1,df2], ignore_index=True)
# Farklı sütun ismine sahip olan DataFrame nesnelerini birleştirme işlemi için oluşturulan ikinci DataFrame nesnesinin sütun ismini değiştirme
df2.columns = ["a","b","e","f"]
df = pd.concat([df1,df2],ignore_index=True)
# İki DataFrame nesnesinde ortak olan sütun adlarına göre birleştirme işlemi için concat metodunun join parametresini kullanma
df = pd.concat([df1,df2],ignore_index=True, join="inner")
# Sonuçları ekrana yazdırma
print(df)
21. Uygulama
İki DataFrame nesnesini merge metodunu kullanarak birleştirme işlemi yapmak için aşağıdaki işlem adımlarını takip ediniz.
1. Adım: İki adet DataFrame oluşturunuz.
ust = pd.DataFrame({
"anahtar": ["B0", "B1", "B2", "B3"],
"A": ["A0", "A1", "A2", "A3"],
"B": ["B0", "B1", "B2", "B3"],
})
alt = pd.DataFrame({
"anahtar": ["B0", "B1", "B4", "B5"],
"C": ["C0", "C1", "C2", "C3"],
"D": ["D0", "D1", "D2", "D3"],
})
2. Adım: Oluşturulan DataFrame nesnelerinin anahtar adındaki sütun üzerinden merge metodunu kullanarak birleştirme işlemini yapınız.
birlesim = pd.merge(ust, alt, on="anahtar")
birlesim
3. Adım: Oluşturulan alt isimli DataFrame nesnesini anahtar sütunundaki B4 değerini B2 olarak değiştirip birleştirme işlemini tekrar yaparak birleştirme sonucunu gözlemleyiniz.
alt.iloc[[2],[0]]="B2"
birlesim = pd.merge(ust, alt, on="anahtar")
birlesim
4. Adım: Birleştirme işleminde anahtar sütundaki bilgiler üzerinden üstteki DataFrame nesnesine göre how argümanı ile yapınız.
birlesim = pd.merge(ust, alt, on="anahtar", how="left")
birlesim
5. Adım: Birleştirme işlemini anahtar sütundaki bilgiler üzerinden alttaki DataFrame nesnesine göre how parametresi ile yapınız.
birlesim = pd.merge(ust, alt, on="anahtar", how="right")
birlesim
DataFrame nesnelerini birleştirmek için aşağıdaki Python kodunu kullanabilirsiniz.
python
# pandas kütüphanesini içe aktaralım
import pandas as pd
# İki adet DataFrame oluşturalım
ust = pd.DataFrame({
"anahtar": ["B0", "B1", "B2", "B3"],
"A": ["A0", "A1", "A2", "A3"],
"B": ["B0", "B1", "B2", "B3"],
})
alt = pd.DataFrame({
"anahtar": ["B0", "B1", "B4", "B5"],
"C": ["C0", "C1", "C2", "C3"],
"D": ["D0", "D1", "D2", "D3"],
})
# DataFrame nesnelerini anahtar sütunu üzerinden birleştirelim
birlesim = pd.merge(ust, alt, on="anahtar")
print(birlesim)
# alt DataFrame nesnesinin anahtar sütunundaki B4 değerini B2 olarak değiştirelim
alt.iloc[[2],[0]]="B2"
birlesim = pd.merge(ust, alt, on="anahtar")
print(birlesim)
# Birleştirme işlemini üst DataFrame nesnesine göre yapalım
birlesim = pd.merge(ust, alt, on="anahtar", how="left")
print(birlesim)
# Birleştirme işlemini alt DataFrame nesnesine göre yapalım
birlesim = pd.merge(ust, alt, on="anahtar", how="right")
print(birlesim)
Kodun çıktısı şöyle olacaktır:
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
3 B3 A3 B3 NaN NaN
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
3 B3 A3 B3 NaN NaN
4 B5 NaN NaN C3 D3
22. Uygulama
1. Adım: İki adet DataFrame oluşturunuz. Örneğin, şöyle yapabilirsiniz:
python
df1 = pd.DataFrame(
{"X": ["X0", "X1", "X3"], "Y": ["Y0","Y1","Y3"]},
index=["K0", "K1", "K3"])
df1
df2 = pd.DataFrame(
{"Z": ["Z0", "Z1", "Z2"], "W": ["W0","W1","W2"]},
index=["K0", "K1", "K2"])
df2
2. Adım: Oluşturulan DataFrame nesnelerinin birleştirme işlemini join metodunu kullanarak yapınız. Örneğin, şöyle yapabilirsiniz:
python
birlesim = df1.join(df2)
birlesim
3. Adım: Oluşturulan DataFrame nesnelerini join metodunun how=”outer” parametresini kullanarak birleştirme işlemini yapınız. Örneğin, şöyle yapabilirsiniz:
python
birlesim = df1.join(df2, how="outer")
birlesim
4. Adım: Pandas how parametresinin değerini inner olarak değiştirerek sonuçları gözlemleyiniz. Örneğin, şöyle yapabilirsiniz:
python
birlesim = df1.join(df2, how="inner")
birlesim
Verileri İçe ve Dışa Aktarma
Pandas kütüphanesi, Python programlama dili için veri analizi ve veri ön işleme yapmayı kolaylaştıran bir araçtır. Pandas DataFrame, etiketli sütunlara ve satırlara sahip iki boyutlu bir veri yapısıdır. Pandas DataFrame içine farklı veri kaynaklarından veri aktarmak için, Pandas kütüphanesi çeşitli okuyucu fonksiyonları sunar. Bu fonksiyonlar, veri kaynağının türüne göre değişir. Örneğin, .csv veya .txt dosyalarından veri okumak için pd.read_csv() fonksiyonu kullanılır. Bu fonksiyonun nrows parametresi ile verinin sadece ilk n satırını okumak mümkündür. Benzer şekilde, .json, .html, .excel, .hdf gibi farklı dosya formatlarından veri okumak için de Pandas kütüphanesi uygun okuyucu fonksiyonları sağlar.
Pandas okuyucu fonksiyonlarının bazı örnekleri şunlardır:
- pd.read_csv(): Virgülle ayrılmış değerler (CSV) dosyasından veri okur.
- pd.read_excel(): Excel dosyasından veri okur.
- pd.read_json(): JSON dosyasından veri okur.
- pd.read_html(): HTML tablosundan veri okur.
- pd.read_sql(): SQL sorgusundan veya veritabanından veri okur.
Pandas okuyucu fonksiyonlarının işlevleri, okunan verileri bir pandas DataFrame nesnesine dönüştürmektir. DataFrame, etiketli sütunlara ve satırlara sahip iki boyutlu bir veri yapısıdır. Pandas okuyucu fonksiyonları, verileri DataFrame'e dönüştürürken çeşitli parametreler alabilir. Bu parametreler, veri tipini, sütun adlarını, satır etiketlerini, eksik değerleri, ayrıştırıcıları ve daha fazlasını belirlemeye yardımcı olur.
DataFrame içindeki verileri csv, excel, sql veya json gibi farklı formatlarda dışa aktarmak için Pandas'ın bazı fonksiyonlarını kullanabilirsiniz. Bu fonksiyonlar şunlardır:
- to_csv(): DataFrame'i bir csv dosyasına kaydeder. Örneğin, df.to_csv("veri.csv") komutu, df adlı DataFrame'i veri.csv dosyasına yazar.
- to_excel(): DataFrame'i bir excel dosyasına kaydeder. Örneğin, df.to_excel("veri.xlsx") komutu, df adlı DataFrame'i veri.xlsx dosyasına yazar.
- to_sql(): DataFrame'i bir sql veritabanına kaydeder. Örneğin, df.to_sql("veri", conn) komutu, df adlı DataFrame'i conn adlı bağlantı nesnesi ile belirtilen veritabanına veri adlı bir tablo olarak yazar.
- to_json(): DataFrame'i bir json dosyasına kaydeder. Örneğin, df.to_json("veri.json") komutu, df adlı DataFrame'i veri.json dosyasına yazar.
23. Uygulama
1. Adım: Açık veri setlerinin bulunduğu depolardan indirilen veya bilgisayarınızda bulunan CSV dosyasından DataFrame oluşturunuz. Bunun için Microsoft Learn sitesinden bir veri seti indirip şöyle yapın:
python
veri = pd.read_csv("microsoft_learn.csv")
2. Adım: Oluşturulan DataFrame nesnesinin ilk 5 satırını ve son 5 satırını görüntüleyiniz. Bu adımda değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
veri.head()
veri.tail()
3. Adım: Oluşturulan DataFrame nesnesinin kopyasını alma işlemini yapınız. Bu adımda da değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
df = veri.copy()
4. Adım: Oluşturulan DataFrame nesnesinin boyutunu görüntüleyiniz. Bu adımda da değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
df.shape
5. Adım: Oluşturulan DataFrame nesnesinin özetini görüntüleyiniz. Bu adımda da değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
df.info()
6. Adım: Oluşturulan DataFrame nesnesi hakkındaki istatistiksel bilgileri görüntüleyiniz. Bu adımda da değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
df.describe()
7. Adım: Oluşturulan DataFrame nesnesinin sütun bilgilerini görüntüleyiniz. Bu adımda da değişecek bir şey yok, aynı şekilde yapabilirsiniz:
python
df.columns
8. Adım: Oluşturulan DataFrame nesnesinin belirtilen sütun bilgilerini görüntüleyiniz. Örneğin, veri setinizde "name" adında bir sütun varsa, şöyle yapabilirsiniz:
python
df["name"]
9. Adım: Oluşturulan DataFrame nesnesinin belirtilen satırı veya satırları kaldırma işlemini yapınız. Örneğin, 5. satırı veya 10-15 arasındaki satırları kaldırmak isterseniz, şöyle yapabilirsiniz:
python
df.drop(5)
df.drop([10,11,12,13,14,15])
10. Adım: Oluşturulan DataFrame nesnesinin belirtilen sütun veya sütunları kaldırma işlemini yapınız. Örneğin, "name" ve "age" adlı sütunları kaldırmak isterseniz, şöyle yapabilirsiniz:
python
df.drop("name", axis=1)
df.drop(["name", "age"], axis=1)
24. Uygulama
Aşağıdaki işlem adımları, belirli bir aralıktaki Garanti Bankası'na ait hisse senedi değerlerinden bir DataFrame nesnesi oluşturmak ve oluşturulan DataFrame nesnesini dışa aktarma işlemini yapmak içindir.
1. Adım: Anaconda ortamına Anaconda Navigator veya komut istemini kullanarak pandas_datareader paketini kurunuz.
conda install pandas_datareader
2. Adım: Jupyter Notebook sayfasına gerekli kütüphaneleri dâhil ediniz.
python
import pandas as pd
import pandas_datareader.data as pdr
3. Adım: Çekilecek olan verilerin başlangıç ve bitiş tarihlerini belirleyiniz.
python
start_date = "2021-01-1"
end_date = "2023-12-1"
4. Adım: Garanti Bankası'nın hisse senedi fiyat verilerini bir DataFrame'de depolamak için datareader metodunu kullanınız.
python
df = pdr.DataReader(name="GARAN.IS", data_source='yahoo', start=start_date, end=end_date)
df
5. Adım: Oluşturulan DataFrame’i csv dosyası olarak dışa aktarım işlemini yapınız.
python
df.to_csv('garanti.csv')
6. Adım: Oluşturulan DataFrame’i Excel dosyası olarak dışa aktarım işlemini yapınız.
python
df.to_excel('garanti.xlsx')
7. Adım: Oluşturulan DataFrame’in sadece bir sütununu HTML dosyası olarak dışa aktarım işlemini yapınız.
python
df[["Close"]].to_html('garanti.html')
Pandas Gruplama ve Kümeleme
Pandas, Python programlama dilinde veri analizi yapmak için kullanılan bir kütüphanedir. Pandas, verileri tablo şeklinde tutan ve sütunlara isim verilebilen bir veri yapısı olan DataFrame sunar. DataFrame, verileri kolayca işlemek, filtrelemek, sıralamak, gruplamak ve kümelemek için çeşitli fonksiyonlar sağlar.
Gruplama, verileri belirli bir kritere göre bölüp, her bir bölüm üzerinde ayrı ayrı işlemler yapmaya yarar. Örneğin, bir DataFrame'de şehir, cinsiyet ve yaş gibi sütunlar olsun. Bu DataFrame'i şehre göre gruplayarak, her bir şehirdeki kişilerin sayısını, ortalama yaşını, cinsiyet dağılımını vb. hesaplayabiliriz. Pandas, gruplama işlemi için groupby fonksiyonunu kullanır. groupby fonksiyonu, gruplama kriteri olarak bir veya birden fazla sütun ismi alır ve bir GroupBy nesnesi döndürür. GroupBy nesnesi, verileri gruplara ayırmış, ancak henüz herhangi bir işlem yapmamıştır. GroupBy nesnesi üzerinde istediğimiz işlevleri çağırarak, gruplara uygulayabiliriz. Örneğin, GroupBy nesnesi üzerinde sum, mean, count, max, min gibi fonksiyonlar çağırabiliriz.
Kümeleme, gruplanmış verilerin istenen özelliklerine göre bir araya getirilmesi işlemidir. Kümeleme işlemi için aggregate fonksiyonu kullanılır. aggregate fonksiyonu, bir veya birden fazla işlevi parametre olarak alır ve her bir grup için bu işlevleri uygular. Sonuç olarak, bir DataFrame döndürür. Bu DataFrame, gruplama kriterine göre sıralanmış ve her bir grup için istenen özellikleri içerir. Örneğin, aggregate fonksiyonuna sum, mean ve count işlevlerini verirsek, her bir grup için toplam, ortalama ve sayı değerlerini içeren bir DataFrame elde ederiz.
Aşağıda, Pandas gruplama ve kümeleme işlemlerinin bir örneğini görebilirsiniz. Bu örnekte, bir DataFrame'de ülke, şehir ve nüfus gibi sütunlar vardır. Bu DataFrame'i ülkeye göre gruplayarak, her bir ülkedeki şehir sayısını, toplam nüfusunu ve ortalama nüfusunu hesaplıyoruz. Sonuç olarak, bir DataFrame elde ediyoruz.
python
# Pandas kütüphanesini içe aktar
import pandas as pd
# Bir DataFrame oluştur
df = pd.DataFrame({
"Ülke": ["Türkiye", "Türkiye", "Türkiye", "Fransa", "Fransa", "Fransa", "Almanya", "Almanya", "Almanya"],
"Şehir": ["İstanbul", "Ankara", "İzmir", "Paris", "Lyon", "Marsilya", "Berlin", "Münih", "Hamburg"],
"Nüfus": [15519267, 5663323, 4320519, 2140526, 516092, 869815, 3644826, 1471508, 1841179]
})
# DataFrame'i ülkeye göre grupla
grup = df.groupby("Ülke")
# Gruplanmış verileri kümele
sonuc = grup.aggregate({
"Şehir": "count", # Şehir sayısını hesapla
"Nüfus": ["sum", "mean"] # Toplam ve ortalama nüfusu hesapla
})
# Sonucu yazdır
print(sonuc)
Çıktı:
Şehir Nüfus
count sum mean
Ülke
Almanya 3 6957513 2.319171e+06
Fransa 3 3545433 1.181811e+06
Türkiye 3 25497109 8.499037e+06
25. Uygulama
Aşağıdaki adımları takip ederek, Iris veri seti üzerinde Pandas groupby fonksiyonunu kullanabilirsiniz:
1. Adım: Kaggle web sitesine gidin ve "Iris" veri setini arayın. İndirme butonuna tıklayarak veri setini bilgisayarınıza kaydedin.
2. Adım: Pandas kütüphanesini içe aktarın ve read_csv fonksiyonu ile indirdiğiniz veri setini bir DataFrame'e dönüştürün. data değişkenine atayın ve ekrana yazdırın.
python
import pandas as pd
data = pd.read_csv('iris.csv')
print(data)
3. Adım: DataFrame hakkında daha fazla bilgi edinmek için info fonksiyonunu çağırın. Bu fonksiyon, DataFrame'in satır sayısı, sütun sayısı, sütun isimleri, veri tipleri, bellek kullanımı ve eksik değerler gibi bilgileri verir.
python
data.info()
4. Adım: Verileri çiçek türlerine göre gruplamak için groupby fonksiyonunu kullanın. Bu fonksiyon, bir gruplama nesnesi döndürür. Bu nesne, gruplara uygulanabilecek farklı fonksiyonlar içerir.
python
grup = data.groupby("Species")
5. Adım: Gruplara ait veri sayısını öğrenmek için count fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için veri sayısını verir.
python
grup.count()
6. Adım: Gruplara ait verilerin ortalamasını öğrenmek için mean fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için aritmetik ortalama hesaplar.
python
grup.mean()
7. Adım: Gruplara ait verilerin toplamını öğrenmek için sum fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için toplam değeri verir.
python
grup.sum()
8. Adım: Gruplara ait verilerin birden fazla istatistiksel ölçüsünü öğrenmek için aggregate fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için istediğiniz fonksiyonları uygular. Örneğin, minimum, maksimum ve standart sapma gibi fonksiyonları bir liste halinde vererek, her gruptaki her sütun için bu değerleri elde edebilirsiniz.
python
grup.agg([min,max,np.std])
9. Adım: Gruplara ait verilerden sadece belirli bir sütunu seçmek için köşeli parantez içinde sütun ismini verin. Örneğin, sadece sepal uzunluğu sütununu seçmek için "SepalLengthCm" sütununu verin. Daha sonra, bu sütuna ait gruplara istediğiniz fonksiyonları uygulayabilirsiniz. Örneğin, maksimum ve minimum değerleri bulmak için aggregate fonksiyonunu kullanabilirsiniz.
python
grup["SepalLengthCm"].aggregate([max,min])
Veri Görselleştirme
Veri görselleştirme, verilerin anlamlı bir şekilde sunulması için kullanılan bir tekniktir. Veri görselleştirme sayesinde, verilerin özellikleri, ilişkileri, dağılımları, eğilimleri ve kalıpları daha kolay görülebilir. Veri görselleştirme, veri analizi sürecinin önemli bir parçasıdır, çünkü verileri anlamak ve yorumlamak için gerekli bilgileri sağlar.
Veri görselleştirme yapmak için, öncelikle verileri uygun bir biçimde hazırlamak gerekir. Verilerdeki aykırı değerler, eksik veriler, hatalı veriler veya gürültülü veriler, veri görselleştirmenin kalitesini ve doğruluğunu etkileyebilir. Bu nedenle, verileri temizlemek, dönüştürmek, ölçeklendirmek veya gruplamak gibi işlemler yapmak gerekebilir.
Verileri hazırladıktan sonra, verileri görselleştirmek için uygun bir araç seçmek gerekir. Verileri görselleştirmek için kullanılan araçlar, veri türüne, veri boyutuna, veri yapısına ve veri analizi amacına göre değişebilir. Verileri görselleştirmek için kullanılan araçlardan biri, matplotlib kütüphanesidir.
Matplotlib, Python programlama dilinde yazılmış, açık kaynaklı bir kütüphanedir. Matplotlib, verileri iki boyutlu grafikler olarak çizmek için kullanılır. Matplotlib, çeşitli grafik türlerini destekler, örneğin çizgi grafikler, pasta grafikler, histogramlar, saçılım grafikleri, kutu grafikleri, vb. Matplotlib, grafiklerin renklerini, stillerini, eksenlerini, başlıklarını, etiketlerini, ızgaralarını, efsanelerini ve diğer özelliklerini özelleştirmek için çeşitli fonksiyonlar ve parametreler sunar. Matplotlib, grafikleri ekranda göstermenin yanı sıra, farklı formatlarda dosyaya kaydetmek için de kullanılabilir. Matplotlib, veri görselleştirme için popüler ve güçlü bir araçtır..
23. Uygulama
Matplotlib kütüphanesi kullanarak verilerden grafik oluşturma işlemini yapmak için aşağıdaki adımları takip ediniz.
1. Adım: Jupyter Notebook sayfasına matplotlib kütüphanesini plt takma adı ile yükleyiniz. Ayrıca, numpy kütüphanesini np takma adı ile yükleyiniz. Bu kütüphaneler, veri işleme ve grafik çizme için çok kullanışlıdır.
python
import matplotlib.pyplot as plt
import numpy as np
2. Adım: Bir sözlük oluşturarak, farklı kategorilerdeki değerlerin sütun grafiğini oluşturunuz. Sütun grafiği, kategorik verileri karşılaştırmak için iyi bir seçimdir. plt.bar() fonksiyonunu kullanarak sütun grafiği çizebilirsiniz. Sözlüğün anahtarları kategorileri, değerleri ise sayısal değerleri temsil eder.
python
# Veri oluştur
veri = {"Kategori 1": 3, "Kategori 2": 7, "Kategori 3": 2, "Kategori 4": 5}
# Sütun grafiği çiz
plt.bar(veri.keys(), veri.values())
# Grafiği göster
plt.show()
3. Adım: NumPy dizisi kullanarak, normal dağılımdan rastgele sayılar üretiniz. Bu sayıların histogramını oluşturunuz. Histogram, sürekli verilerin dağılımını göstermek için kullanılır. plt.hist() fonksiyonunu kullanarak histogram çizebilirsiniz. bins parametresi, histogramın kaç sütundan oluşacağını belirler. edgecolor parametresi, sütunların kenar rengini belirler.
python
# Veri oluştur
veri = np.random.normal(50, 10, 100)
# Histogram oluştur
plt.hist(veri, bins=10, edgecolor="black")
# Grafiği göster
plt.show()
4. Adım: y = 2x + 5 doğrusunun grafiğini oluşturunuz. Doğru grafiği, iki değişken arasındaki ilişkiyi göstermek için kullanılır. plt.plot() fonksiyonunu kullanarak doğru grafiği çizebilirsiniz. x ve y parametreleri, eksen değerlerini belirler.
python
# Veri oluştur
x = np.arange(0, 10)
y = 2 * x + 5
# Doğru grafiği çiz
plt.plot(x, y)
# Grafiği göster
plt.show()
5. Adım: Oluşturduğunuz grafiğe başlık ve eksen etiketleri ekleyiniz. Başlık ve etiketler, grafiğin anlaşılmasını kolaylaştırır. plt.title() fonksiyonu, grafiğin başlığını belirler. plt.xlabel() ve plt.ylabel() fonksiyonları, eksenlerin etiketlerini belirler.
python
# Veri oluştur
x = np.arange(0, 10)
y = 2 * x + 5
# Doğru grafiği çiz
plt.plot(x, y)
# Grafik başlığı ve eksen etiketleri
plt.title("Örnek Doğru Grafiği")
plt.xlabel("X Ekseni")
plt.ylabel("Y Ekseni")
# Grafiği göster
plt.show()
6. Adım: Farklı renk ve şekillerde birden çok nokta grafiği oluşturunuz. Nokta grafiği, iki değişken arasındaki ilişkiyi göstermek için kullanılır. plt.scatter() fonksiyonunu kullanarak nokta grafiği çizebilirsiniz. color ve marker parametreleri, noktaların rengini ve şeklini belirler. plt.legend() fonksiyonu, grafiğe açıklama ekler.
python
# Veri oluştur
x = np.arange(0, 10)
y1 = x ** 2
y2 = x ** 3
y3 = x ** 4
# Nokta grafikleri çiz
plt.scatter(x, y1, color="red", marker="o", label="y1")
plt.scatter(x, y2, color="blue", marker="s", label="y2")
plt.scatter(x, y3, color="green", marker="^", label="y3")
# Grafik başlığı ve eksen etiketleri
plt.title("Örnek Nokta Grafikleri")
plt.xlabel("X Ekseni")
plt.ylabel("Y Ekseni")
# Grafik açıklaması
plt.legend()
# Grafiği göster
plt.show()
Çizim Tipleri
Python matplotlib, verileri görselleştirmek için kullanılan bir kütüphanedir. Bu kütüphane ile çeşitli grafik tipleri oluşturabilirsiniz. Bu grafik tiplerinden bazıları şunlardır:
- Çubuk Grafik (Bar Graph): Bu grafik türü, verileri dikdörtgen şeklinde çubuklar halinde gösterir. Çubukların yüksekliği veya uzunluğu, verilerin büyüklüğünü veya değerini belirtir. Çubuk grafikler, verileri farklı kategoriler arasında karşılaştırmak veya belirli bir süre içinde verilerdeki değişiklikleri izlemek için kullanışlıdır. Örneğin, bir çubuk grafiği ile farklı ülkelerin nüfuslarını veya bir yıl içindeki satış miktarlarını gösterebilirsiniz.
- Histogram Grafik (Histogram Graph): Bu grafik türü, verilerin bir dağılımını gösterir. Histogramlar, verileri belirli aralıklara bölerek, her aralıktaki veri sayısını dikdörtgen şeklinde çubuklarla gösterir. Histogramlar, verilerin merkezi eğilimi, yayılımı ve çarpıklığı gibi istatistiksel özelliklerini analiz etmek için kullanılır. Örneğin, bir histogram ile bir sınıftaki öğrencilerin sınav notlarının dağılımını veya bir şehirdeki ev fiyatlarının dağılımını gösterebilirsiniz.
- Dağılım Grafik (Scatter Graph): Bu grafik türü, iki değişken arasındaki ilişkiyi gösterir. Dağılım grafikleri, verileri noktalar halinde iki eksen üzerinde gösterir. Noktaların konumu, verilerin değerlerini belirtir. Dağılım grafikleri, iki değişken arasındaki korelasyonu, eğilimi veya kümelemeyi görmek için kullanılır. Örneğin, bir dağılım grafiği ile bir ürünün fiyatı ile satış miktarı arasındaki ilişkiyi veya bir kişinin boyu ile kilosu arasındaki ilişkiyi gösterebilirsiniz.
- Pasta Grafik (Pie Graph): Bu grafik türü, verilerin bir bütün içindeki oranlarını gösterir. Pasta grafikleri, verileri dilimler halinde bir daire içinde gösterir. Her dilimin açısı, verilerin yüzdesini veya oranını belirtir. Pasta grafikleri, verilerin bir bütün içindeki payını veya yüzdesini görmek için kullanılır. Örneğin, bir pasta grafiği ile bir ülkenin enerji kaynaklarının dağılımını veya bir şirketin gelir kaynaklarının dağılımını gösterebilirsiniz.
24. Uygulama
Matplotlib kütüphanesi kullanarak verilerin farklı grafik türlerinde gösterim işlemini yapmak için aşağıdaki adımları takip ediniz:
1. Adım: Verileri matplotlib bar metodu ile çubuk grafik şeklinde gösterme işlemini yapınız. Bu adımda, diller ve oranlar listelerini değiştirerek farklı verileri gösterebilirsiniz. Örneğin, aşağıdaki kodu kullanarak en çok konuşulan dillerin yüzde dağılımını çubuk grafik olarak gösterebilirsiniz.
python
diller = ['İngilizce', 'Çince', 'İspanyolca', 'Fransızca', 'Arapça']
oranlar = [15.5, 15.1, 6.2, 4.1, 3.3]
plt.xlabel("Diller")
plt.ylabel("Oranlar")
plt.bar(diller,oranlar)
plt.show()
2. Adım: Çubuk grafiğinde çubukların genişliklerini ve konumlarını değiştirerek birden fazla çubuk grafik oluşturma işlemini yapınız. Bu adımda, data listesini değiştirerek farklı veri gruplarını gösterebilirsiniz. Örneğin, aşağıdaki kodu kullanarak Türkiye, Almanya ve Fransa'nın 2020, 2021 ve 2022 yıllarındaki nüfus artış oranlarını çubuk grafik olarak gösterebilirsiniz.
python
data = [[1.1, 0.9, 0.8], # Türkiye
[0.3, 0.2, 0.1], # Almanya
[0.4, 0.3, 0.2]] # Fransa
x= np.arange(3)
plt.bar(x + 0.00, data[0], color = 'red', width = 0.25, label = 'Türkiye')
plt.bar(x + 0.25, data[1], color = 'yellow', width = 0.25, label = 'Almanya')
plt.bar(x + 0.50, data[2], color = 'blue', width = 0.25, label = 'Fransa')
plt.xticks(x + 0.25, ['2020', '2021', '2022'])
plt.xlabel("Yıllar")
plt.ylabel("Nüfus Artış Oranları (%)")
plt.legend()
plt.show()
3. Adım: 0 ile 100 arasında rastgele 100 adet sayıdan oluşan değerlerin dağılımını histogram grafik kullanarak yapınız. Bu adımda, data listesini değiştirerek farklı sayı aralıklarından ve farklı sayıda rastgele sayılar üretebilirsiniz. Örneğin, aşağıdaki kodu kullanarak 0 ile 1000 arasında rastgele 500 adet sayıdan oluşan değerlerin dağılımını histogram grafik olarak gösterebilirsiniz.
python
data=np.random.randint(0,1000,500)
aralik=np.arange(0,1100,100)
plt.hist(data, aralik, rwidth=0.8)
plt.xlabel("Sayı Aralıkları")
plt.ylabel("Frekans")
plt.show()
4. Adım: Veriler arasındaki ilişkiyi scatter grafik kullanarak gösteriniz. Bu adımda, x ve y listelerini değiştirerek farklı veri noktaları oluşturabilirsiniz. Örneğin, aşağıdaki kodu kullanarak bir sınıftaki öğrencilerin matematik ve fizik notları arasındaki ilişkiyi scatter grafik olarak gösterebilirsiniz.
python
x = [ 50 , 60 , 70 , 80 , 90 , 100 ] # Matematik notları
y = [ 40 , 50 , 60 , 70 , 80 , 90 ] # Fizik notları
plt.scatter(x, y, label= 'Öğrenciler' , color= 'green' )
plt.xlabel( 'Matematik Notları' )
plt.ylabel( 'Fizik Notları' )
plt.legend()
plt.show()
5. Adım: Türkiye’deki şehirlerin nüfus oranlarını pasta grafik olarak gösterme işlemini yapınız. Bu adımda, iller ve oran listelerini değiştirerek farklı şehirlerin nüfus oranlarını gösterebilirsiniz. Örneğin, aşağıdaki kodu kullanarak Türkiye'nin en kalabalık 5 şehrinin nüfus oranlarını pasta grafik olarak gösterebilirsiniz.
python
iller=["İstanbul","Ankara","İzmir","Bursa","Antalya"]
oran=[18.5,6.7,5.2,3.7,3]
plt.pie(oran, labels = iller, autopct='%1.1f%%')
plt.title( 'Türkiye Nüfus Oranları' )
plt.legend()
plt.show()
Bu adımları takip ederek Matplotlib kütüphanesi ile verilerin farklı grafik türlerinde gösterim işlemini yapabilirsiniz.