Kurs
Diziler, birçok programlama dilinde, aynı türden öğelerin bitişik bir bellek bloğunda saklanmasına imkân tanıyan temel veri yapılarıdır; yani tüm öğeler arada boşluk olmadan ardışık olarak depolanır. Bu yapı, depolanan öğelere verimli erişim ve onların etkin biçimde işlenmesini sağlar.
C veya Java gibi dillerin aksine, Python geleneksel anlamda yerleşik bir dizi veri tipine sahip değildir. Bunun yerine, farklı programlama ihtiyaçlarına ve senaryolarına uygun, dizi gibi davranan çeşitli alternatifler sunar.
Python’un standart kütüphanesi, daha statik tür denetimine sahip dillere benzer biçimde, sıkışık ve tür kısıtlamalı diziler oluşturmayı sağlayan bir array modülünü içerir.
Bununla birlikte, sayısal ve bilimsel hesaplama için NumPy kütüphanesi ve onun ndarray’i (n-boyutlu dizi) Python’da fiili standart hâline gelmiştir. NumPy dizileri, Python’un standart kütüphanesinin sunduğu temel dizi yapısının çok ötesinde kapsamlı işlevsellik sağlar.
Bir Dizinin Temelleri
NumPy, Python’da sayısal hesaplama için temel pakettir; güçlü bir dizi nesnesi ve bu dizilerle verimli çalışmayı sağlayan bir işlevler takımı sunar. NumPy’nin avantajları şunlardır:
• Çok boyutlu: Yalnızca tek boyutlu dizileri değil, daha fazlasını destekler.
• Güçlü işlemler: Geniş bir matematiksel ve istatistiksel fonksiyon kütüphanesi içerir.
• Vektörleştirme: Açık döngülere gerek kalmadan tüm dizi üzerinde işlemler yapılmasına olanak tanır ve performansı artırır.
• Entegrasyon: SciPy, Pandas ve Matplotlib gibi diğer bilimsel kütüphanelerle sorunsuz çalışır.
Hadi NumPy kullanarak bir dizi oluşturmaya başlayalım. Önce NumPy’ı içe aktarır, ardından array() fonksiyonunu kullanarak bir dizi oluşturursunuz. array() fonksiyonu girdi olarak bir liste alır.
import numpy
my_array = numpy.array([0, 1, 2, 3, 4])
print(my_array)
# Expected output: [0 1 2 3 4]
my_array’ın türü bir numpy.ndarray’dir.
import numpy
my_array = numpy.array([0, 1, 2, 3, 4])
print(type(my_array))
# Expected output: <class 'numpy.ndarray'>
Dizi Örnekleri
Dizi Oluşturma Örneği
Aşağıdaki örnekte, NumPy’daki array() fonksiyonunu kullanarak bir listeyi diziye dönüştüreceksiniz. Tamsayılardan oluşan bir a_list listesi oluşturacaksınız. Ardından array() fonksiyonunu kullanarak bunu bir diziye dönüştürün.
import numpy as np
a_list = [1, 2, 3, 4]
print(a_list)
# Expected output: [1, 2, 3, 4]
import numpy as np
a_list = [1, 2, 3, 4]
an_array = np.array(a_list)
print(an_array)
# Expected output: [1 2 3 4]
Dizi İşlemi Örneği
Aşağıdaki örnekte iki numpy dizisini topluyorsunuz. Sonuç, her iki dizinin eleman bazında toplamıdır.
import numpy as np
array_A = np.array([1, 2, 3])
array_B = np.array([4, 5, 6])
print(array_A + array_B)
# Expected output: [5 7 9]
Dizi İndeksleme Örneği
Dizinin belirli bir indeksindeki öğeyi, indeksleme gösterimiyle seçebilirsiniz.
import numpy as np
months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[3])
# Expected output: Apr
Ayrıca, bir indeks aralığı belirterek dilimleme gösterimi ile bir dizi öğeyi seçebilirsiniz.
import numpy as np
months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[2:5])
# Expected output: ['March', 'Apr', 'May']
Listeden Diziye Etkileşimli Örnek
Aşağıdaki örnekte, numpy’ı np takma adıyla içe aktaracaksınız. Sırasıyla prices ve earnings listelerinden prices_array ve earnings_array dizilerini oluşturun. Son olarak her iki diziyi de yazdırın.
import numpy as np
# Lists
prices = [170.12, 93.29, 55.28, 145.30, 171.81, 59.50, 100.50]
earnings = [9.2, 5.31, 2.41, 5.91, 15.42, 2.51, 6.79]
# NumPy arrays
prices_array = np.array(prices)
earnings_array = np.array(earnings)
# Print the arrays
print(prices_array)
print(earnings_array)
# Expected output:
# [170.12 93.29 55.28 145.3 171.81 59.5 100.5 ]
# [ 9.2 5.31 2.41 5.91 15.42 2.51 6.79]
Python’da NumPy dizileri hakkında daha fazla bilgi edinmek için, Introduction to Python for Finance kursumuzdaki bu videoyu izleyin.
Bu içerik, Adina Howe’un hazırladığı DataCamp’in Introduction to Python for Finance kursundan alınmıştır.
Python Numpy Dizi Eğitimimize göz atın.
SSS
Python’un array modülü ile NumPy dizileri arasındaki temel farklar nelerdir?
Ana farklar yetenekler ve kullanım alanlarında yatar. Python’un array modülü, C gibi dillerdekine benzer şekilde sıkışık ve tür kısıtlamalı diziler oluşturmak için temel işlevsellik sağlar. Öte yandan, NumPy dizileri çok boyutlu dizileri destekleme, geniş bir matematiksel fonksiyon kütüphanesi ve vektörleştirme yoluyla performans iyileştirmeleri gibi gelişmiş özellikler sunar. Sayısal ve bilimsel hesaplama için genellikle NumPy tercih edilir.
Python’un array modülünü metin veya nesne veri türleri için kullanabilir miyim?
Hayır, array modülü yalnızca tamsayı, kayan nokta gibi temel veri türlerini tutmak üzere tasarlanmıştır. Dizgeleri veya nesneleri desteklemez. Bu türlerin koleksiyonları için Python’un listesi veya demet (tuple) ya da sözlük (dictionary) gibi diğer veri yapıları daha uygundur.
Sayısal veriler için Python listeleri yerine neden NumPy dizileri kullanılır?
NumPy dizileri özellikle sayısal hesaplamalara yönelik olarak optimize edilmiştir. Özellikle büyük veri kümelerinde, Python listelerine kıyasla daha verimli depolama ve işleme yetenekleri sunarlar. Vektörleştirme gibi özellikler, açık döngüler olmadan tüm diziler üzerinde işlemler yapılmasına imkân tanır; bu da performansı ve kodun okunabilirliğini büyük ölçüde artırır.
