İki boyutlu diziler veya matrisler, özellikle görüntü işleme, lineer cebir ve oyun geliştirme gibi görevler için programlamada temel veri yapılarıdır. Python’ın bazı dillerde (örneğin, C++) olduğu gibi yerleşik bir 2B dizi türü olmamasına rağmen, bunları oluşturmak ve manipüle etmek için birkaç verimli ve zarif yol sunar. Bu makale, üç popüler yaklaşımı ele almaktadır: liste kavrama, iç içe geçmiş döngüler ve güçlü NumPy kütüphanesi.
İçerik Tablosu
Liste Kavrama Yöntemi
Liste kavrama, özellikle formüllerden veya kalıplardan üretilen değerlerle başlatılırken, 2B diziler oluşturmak için özlü ve Pythonik bir yol sunar. Dış döngü satırları ve iç döngü sütunları işleyen iç içe geçmiş liste kavramaları kullanır.
# Sıfırlarla dolu 3x4 dizi
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d) # Çıktı: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# Satır ve sütun indekslerine göre değerlere sahip 3x3 dizi
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d) # Çıktı: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
# Rastgele sayılar içeren 2x2 dizi (random'ın içe aktarılmasını gerektirir)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # Çıktı: (Örnek) [[7, 2], [9, 5]]
İç İçe Geçmiş Döngüler Yöntemi
Bu yaklaşım, diziyi eleman eleman oluşturmak için satır ve sütunlar arasında yineleme yapan, iç içe geçmiş for
döngülerini range
ile kullanır. Liste kavramasından daha ayrıntılıdır ancak yeni başlayanlar için daha kolay anlaşılır olabilir.
rows = 3
cols = 4
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0) # Veya başka bir başlatma değeri
array_2d.append(row)
print(array_2d) # Çıktı: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
rows = 3
cols = 3
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(i*cols + j) #Ardışık sayılarla doldurma örneği
array_2d.append(row)
print(array_2d) # Çıktı: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
NumPy Dizileri
NumPy, Python’da sayısal hesaplama için güçlü bir kütüphanedir. numpy.array()
fonksiyonu, çok boyutlu dizilerin verimli bir şekilde oluşturulmasını ve manipüle edilmesini sağlar. NumPy dizileri, sayısal işlemler için Python listelerinden önemli ölçüde daha hızlı performans sunar.
import numpy as np
# Sıfırlarla dolu 3x4 dizi
array_2d = np.zeros((3, 4))
print(array_2d)
# Birlerle dolu 3x3 dizi
array_2d = np.ones((3, 3))
print(array_2d)
# Belirli bir değerle dolu 2x2 dizi
array_2d = np.full((2, 2), 7)
print(array_2d)
# 3x3 birim matris
array_2d = np.eye(3)
print(array_2d)
# 0 ile 1 arasında rastgele sayılar içeren 2x3 dizi
array_2d = np.random.rand(2, 3)
print(array_2d)
# 1 ile 10 arasında rastgele tamsayılar içeren 2x2 dizi
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)
NumPy, çeşitli değerler ve kalıplarla dizileri başlatmak için çeşitli fonksiyonlar sunar ve bu da onu 2B dizileri içeren sayısal hesaplamalar için tercih edilen seçim haline getirir. Bu fonksiyonları kullanmadan önce import numpy as np
yazmayı unutmayın.