Veri Bilimi İçin Temel Python Kütüphaneleri : Numpy 1

Ceydanur İlhan
pisanoeng
Published in
5 min readDec 1, 2022

Herkese merhaba!

Uzun bir Python yazı serisinin ardından artık veri analizine başlamak için Python’da yer alan kütüphaneleri ele almak istedim. Bu bağlamda bu yazı serisinin ilkinde Numpy kütüphanesini beraber keşfedip öğreneceğiz. Haydi hiç zaman kaybetmeden başlayalım!

Numpy Nedir?

Numpy yani Numerical Python çok boyutlu diziler ve matrislerle çalışmamızı sağlayan, nümerik işlemleri hızlı bir şekilde yapmamızı sağlayan bir kütüphanedir.

Sadece Python’da pure olarak yazdığımız kodlar nümerik işlemler yaparken o kadar hızlı olmayabilir. Ama C, C++ gibi diller daha low level diller olduğu için bu diller makine diline daha yakın bu sebeple de daha hızlı çalışıyorlar. Numpy kütüphanesi temel olarak Python’da yazılmış olsa da nümerik işlemler yaparken hızdan ödün vermememiz için bu kısımları C’de yazılmış bir kütüphanedir. Hatta öyle ki Numpy’ın Python’dan 50 kat hızlı olduğu senaryolar bile mevcuttur.

Numpy Kütüphanesini Eklemek

Numpy kütüphanesi programımıza Python ile entegre bir şekilde gelmemektedir. Bu sebeple Numpy kütüphanesini kullanabilmek için öncelikle terminalden onu kurmamız, kurulum bittikten sonra da import etmemiz gerekir.

Numpy kütüphanesini kurmak için öncelikle yeni bir terminal açıp pip install numpy ifadesini girmemiz gerekir. Eğer Google Colab gibi online bir editör kullanıyorsanız bu işlemi gerçekleştirmenize gerek yoktur.

Kurulum gerçekleştikten sonra import numpy as np şeklinde kütüphanemizi import edebiliriz. Bu işlemden sonra kodumuzda numpy’a erişmek istersek referans verdiğimiz np ile erişim sağlayabiliriz. Burada np yerine istediğimiz herhangi bir şey de yazabiliriz ama herkesin anlayabilmesi için genelde np olarak kullanılır bu yüzden bizim de bu şekilde kullanmamız daha iyi olacaktır.

Numpy Array

Numpy’ın hızlı nümerik işlemler yapabilmek için kullandığı temel veri tipi numpy arraylerdir.

Numpy arrayler aslında python’daki liste veri yapılarına benzer ama numpy arraylerinin içindeki veri tipleri homojen bir yapıdadır. Homojen python listelerini ve array() fonksiyonunu kullanarak numpy arrayleri oluşturabiliriz.

Gördüğümüz üzere 1,2,3,4 elemanlarını içeren listeyi bir numpy arraye çevirmiş olduk. İsterseniz oluşturduğumuz x numpy arrayinin tipine bakalım.

Tip kontrolünü yaptığımızda numpy n dimensional array olduğunu görüyoruz.

Sadece liste veri yapısından değil tuple ve set veri yapılarından da faydalanarak numpy arrayler oluşturabiliriz.

Numpy array oluştururken listemizin içinde hem integer hem string bir arada olduğu zaman hepsini stringe çevirir çünkü string daha genel ifade edilebilirliği olan bir veri tipidir.

Integer ve floatlar birlikte olduğu zaman ise float daha genel ifade edilebilir bir veri tipi olduğu için hepsini floata çevirir.

Eğer listemizin içinde hem integer hem float hem de string bir arada yer alıyorsa hepsini stringe dönüştürür.

Burada amacımız ifade edilebilirliği yüksek olan tipe dönüştürerek numpy array oluşturmaktır. Ama istersek numpy arrayin elemanlarının tipinin ne olacağını özellikle belirtebiliriz. Burada dikkat etmemiz gereken tek şey string veri tipinde veriler içeren ve bu verilerin de karakter olduğu durumlarda bu karakterleri integer ya da float veri tipine dönüştüremeyeceğimizdir.

Numpy Arraylerde Boyutlar

0-D Diziler

İçerisinde tek bir değerin bulunduğu dizilere 0 boyutlu diziler ya da scalar değerler deriz.

1-D Diziler

Elemanları 0-D diziler olan dizileri tek boyutlu diziler ya da vektörler olarak adlandırırız.

2-D Diziler

Elemanları 1-D diziler olan dizileri iki boyutlu diziler ya da matrisler olarak adlandırırız.

3-D Diziler

Elemanları 2-D diziler olan dizileri üç boyutlu diziler olarak adlandırırız.

Numpy Arraylerin Özellikleri

Numpy Arraylerin Boyutunu Bulma

ndim özelliği ile numpy arrayimizin kaç boyutlu bir array olduğunu tespit edebiliriz.

Çok Boyutlu Numpy Arrayler Tanımlama

ndmin özelliği ile istediğimiz boyutta numpy arrayler oluşturabiliriz.

Numpy Arraylerin Satır ve Sütun Sayılarını Bulma

shape özelliği oluşturulan numpy arrayin satır ve sütun bilgisini gösteren bir tuple nesnesi döndürür.

Numpy Arraylerin Satır ve Sütun Sayısını Değiştirmek

reshape özelliği ile elimizdeki numpy arrayi istediğimiz boyuta şekillendirmek mümkündür. reshape işlemi sonucunda numpy arrayimizin eleman sayısı değişmez sadece temsil edildiği şekil değişir.

Numpy arraylerde reshape işlemi ile satır ve sütun sayılarını değiştirirken bazen -1 ifadesini kullanabiliriz. Burada verdiğimiz diğer dimension sayısına göre -1 olarak girdiğimiz yerin hangi değeri alacağına numpy kendisi karar verebilir çünkü reshape işlemi sonucunda eleman sayımız sabit kalıyordu.

Numpy Arraylerin Eleman Sayısını Bulma

size özelliği sayesinde verdiğimiz bir numpy arrayin kaç elemandan oluştuğunu kolayca bulabiliriz.

Numpy Arraylerin Veri Tipini Bulma

İncelediğimiz numpy arrayin veri tipini tespit etmek için dtype özelliğinden faydalanırız.

Numpy Arrayleri Oluşturma

Elemanları 0'dan Oluşan Numpy Array Oluşturma

Aslında sadece 0 demek doğru olmasa da zeros özelliğinden yararlandığımız için 0 olarak tanımlıyoruz ama oluşturduğumuz numpy arrayin veri tipine göre çıktı olarak gördüğümüz şey 0, False ya da boş stringlerden oluşan numpy arrayleri oluyor. Eğer veri tipini belirtmezsek default olarak float değerleri alıyor.

Listelerden ve tuplelardan yardım alarak birden çok boyuta sahip elemanları 0'dan oluşan numpy arrayler de oluşturabiliriz.

Elemanları 1'lerden Oluşan Numpy Array Oluşturma

ones özelliği sayesinde elemanları 1 ya da True değerlerinden oluşan numpy arrayler oluşturabiliriz.

Birim Matris Oluşturma

eye özelliği sayesinde belirttiğimiz boyutlarda birim matrisler oluşturabiliriz.

eye özelliğini kullanırken satır ve sütun sayısını eşit olarak vermediğimizde diyagonal elemanları 1 diğer elemanları 0 ile doldurur.

Belirtilen Bir Elemandan Numpy Array Oluşturma

full özelliği sayesinde belirttiğimiz şekilde numpy arrayi istediğimiz bir eleman ile doldurabiliriz. Burada numpy arrayimiz istersek tek boyutlu istersek birden çok boyutlu olabilir. Numpy arrayimizi doldurmak istediğimiz elemanı da istediğimiz veri tipinde seçebiliriz.

Elemanları Ardışık Sayılar Olan (Consecutive) Numpy Arrayleri Oluşturmak

arange ile ardışık sayılar içeren numpy arrayler oluşturabiliriz. Bu özelliğin kullanım syntaxı Python’daki range ile benzerlik göstermektedir.

np.arange(baslangic_degeri, bitis_degeri, artis_miktari)

  • baslangic_degeri belirtilmezse varsayılan olarak 0 kabul edilir.
  • bitis_degeri belirtilmezse dizinin uzunluğu varsayılan bitiş değeri kabul edilir.
  • artis_miktari belirtilmezse varsayılan olarak 1 artım yapılır.

Belirli Bir Aralığı Eşit Uzaklıktaki Noktalara Bölerek Numpy Array Oluşturma

linspace özelliği sayesinde belirtilen bir aralığı başlangıç ve bitiş değerleri dahil olacak şekilde bölerek numpy arrayler oluşturabiliriz. Aralığın kaç parçaya bölünmesini istediğimizi belirtmezsek default olarak 50 eşit parçaya böler. Kaç parçaya bölünmesini istediğimizi num = parça sayısı ya da direkt parça sayısı olarak belirtebiliriz. Bitiş değerini dahil etmek istemediğimizde endpoint = False ifadesinden yararlanabiliriz. Belirteceğimiz başlangıç ve bitiş değerleri sadece integer değerler olmak zorunda değildir, istersek float değerleri de kullanabiliriz.

Normal Distribution’dan Çekilmiş Değerler ile Numpy Array Oluşturmak

random.normal özelliği ile bu işlemi gerçekleştiriyoruz. Burada bizden beklenen değerler ( ortalama, standart_sapma, numpy_array_shape) bilgilerini vermemiz. Burada yapılan işlem oluşturulan numpy arrayin bütün elemanlarının bu normal distributiondan çekilmiş olması.

Random Integerlar ile Numpy Array Oluşturmak

random.randint özelliği ile belirttiğimiz başlangıç değeri dahil, bitiş değeri dahil olmayan ve belirttiğimiz şekle sahip numpy arrayler oluşturabiliriz.

random.random ile 0 ve 1 aralığında istediğimiz boyutlarda numpy arrayler oluşturabiliriz.

Bir yazımın daha sonuna geldik! Umarım keyifle okumuşsunuzdur. Bu yazıda numpy kütüphanesinden, numpy arraylerin özelliklerinden ve nasıl array oluşturduğumuzdan bahsettik ama numpy kütüphanesiyle bunlardan çok daha fazlasını yapabiliriz. Bir sonraki yazımda numpy’ı daha detaylı ele alacağız. Bir sonraki yazımda görüşünceye dek hoşça kalın!

--

--