AMP Analytics -->

Teknoloji Rehberi

21 Nisan 2025 Pazartesi

Python'da Diziler (Arrays)

 

Python'da Diziler (Arrays): Ayrıntılı Anlatım

Python'da "dizi" (array) kavramı birkaç farklı şekilde karşımıza çıkar. Python'un temelinde liste (list) yapısı bulunurken, daha performanslı işlemler için array modülü ve NumPy kütüphanesi gibi seçenekler de mevcuttur.

1. Python Listeleri (Temel Dizi Yapısı)

Python'da en temel dizi benzeri yapı listelerdir:

python
Copy
Download
# Liste oluşturma
meyveler = ["elma", "armut", "çilek", "muz"]
sayilar = [1, 2, 3, 4, 5]
karisik = [1, "elma", 3.14, True]

# Elemanlara erişim
print(meyveler[0])  # 'elma' (indisler 0'dan başlar)
print(meyveler[-1]) # 'muz' (son eleman)

# Dilimleme (slicing)
print(sayilar[1:3]) # [2, 3]
print(sayilar[:3])  # [1, 2, 3]
print(sayilar[2:])  # [3, 4, 5]

# Liste uzunluğu
print(len(meyveler)) # 4

Liste Metodları:

python
Copy
Download
# Eleman ekleme
meyveler.append("kiraz")       # Sona ekler
meyveler.insert(1, "portakal") # Belirtilen pozisyona ekler

# Eleman silme
meyveler.remove("armut")       # Değere göre siler
silinen = meyveler.pop(2)      # İndise göre siler ve döndürür
del meyveler[0]                # İndise göre siler

# Diğer işlemler
meyveler.sort()                # Sıralama
meyveler.reverse()             # Ters çevirme
yeni_liste = meyveler.copy()   # Kopyalama

2. Array Modülü

Python'un built-in array modülü, daha verimli bellek kullanımı sağlar ancak tek tip veri saklayabilir:

python
Copy
Download
from array import array

# array(typecode, initial_values)
sayilar = array('i', [1, 2, 3, 4, 5])  # 'i' signed integer demektir
kesirli = array('d', [1.0, 2.5, 3.14]) # 'd' double precision float

# Kullanımı liste gibidir
sayilar.append(6)
print(sayilar[3])  # 4

Typecode'lar:

  • 'b': signed char

  • 'B': unsigned char

  • 'i': signed int

  • 'I': unsigned int

  • 'f': float

  • 'd': double

3. NumPy Dizileri (Bilimsel Hesaplamalar İçin)

NumPy, büyük veri setleri ve bilimsel hesaplamalar için optimize edilmiş diziler sunar:

python
Copy
Download
import numpy as np

# NumPy dizisi oluşturma
arr = np.array([1, 2, 3, 4, 5])
matris = np.array([[1, 2, 3], [4, 5, 6]])

# Özellikler
print(arr.shape)    # (5,) - boyut bilgisi
print(matris.shape) # (2, 3)
print(arr.dtype)    # int64 - veri tipi

# Özel diziler
sifir_dizi = np.zeros((3, 4))       # 3x4'lük 0'lardan oluşan dizi
bir_dizi = np.ones((2, 2))          # 2x2'lik 1'lerden oluşan dizi
aralik = np.arange(0, 10, 2)        # 0'dan 10'a 2'şer artan dizi [0, 2, 4, 6, 8]

NumPy Avantajları:

  • Vektörel işlemler (broadcasting)

  • Hızlı matematiksel fonksiyonlar

  • Matris işlemleri

  • Bellek verimliliği

4. Çok Boyutlu Diziler

Python'da iç içe listelerle çok boyutlu diziler oluşturulabilir:

python
Copy
Download
# 2 boyutlu dizi (matris)
matris = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

print(matris[1][2])  # 6 (2. satır, 3. sütun)

# 3 boyutlu dizi
kup = [
    [
        [1, 2], 
        [3, 4]
    ],
    [
        [5, 6], 
        [7, 8]
    ]
]

print(kup[1][0][1])  # 6

5. Dizi İşlemleri ve Fonksiyonlar

List Comprehension:

python
Copy
Download
kareler = [x**2 for x in range(10)]  # [0, 1, 4, 9, ..., 81]
ciftler = [x for x in range(20) if x % 2 == 0]

Map ve Filter:

python
Copy
Download
def kare_al(x):
    return x * x

sayilar = [1, 2, 3, 4]
kare_liste = list(map(kare_al, sayilar))  # [1, 4, 9, 16]

cift_sayilar = list(filter(lambda x: x % 2 == 0, sayilar))  # [2, 4]

Zip:

python
Copy
Download
isimler = ["Ali", "Veli", "Ayşe"]
yaslar = [25, 30, 22]

for isim, yas in zip(isimler, yaslar):
    print(f"{isim}: {yas} yaşında")

6. Performans Karşılaştırması

  1. Listeler: En esnek yapı, farklı türler saklayabilir, ancak görece yavaş

  2. array modülü: Tek tip veri için daha verimli, özellikle sayısal işlemlerde

  3. NumPy: Büyük veri setleri ve bilimsel hesaplamalar için en hızlı seçenek

7. Hangi Durumda Ne Kullanılmalı?

  • Liste: Genel amaçlı kullanım, farklı veri türleri içeren koleksiyonlar

  • array: Tek tip veri (özellikle sayısal) ve bellek verimliliği gerektiğinde

  • NumPy array: Bilimsel hesaplamalar, matris işlemleri, büyük veri setleri

Bu anlatım Python'daki dizi kavramlarını temel ve orta düzeyde kapsamaktadır. Özellikle NumPy gibi kütüphaneler çok daha geniş fonksiyonellik sunar.

Hiç yorum yok:

Yorum Gönder

Popular Posts