Python - Matris
Matris, her veri öğesinin kesinlikle aynı boyutta olduğu iki boyutlu dizinin özel bir durumudur. Yani her matris aynı zamanda iki boyutlu bir dizidir ama tersi değildir. Matrisler, birçok matematiksel ve bilimsel hesaplama için çok önemli veri yapılarıdır. Önceki bölümde daha önce iki boyutlu dizi veri yapısını tartıştığımız gibi, bu bölümde matrislere özgü veri yapısı işlemlerine odaklanacağız.
Matris veri işlemesi için numpy paketini de kullanıyoruz.
Matris Örneği
Sabah, gün ortasında, akşam ve gece yarısı ölçülen 1 haftalık kayıt sıcaklığını düşünün. Bir dizi ve numpy'de bulunan yeniden şekillendirme yöntemi kullanılarak 7X5 matris olarak sunulabilir.
from numpy import *
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = reshape(a,(7,5))
print(m)
Yukarıdaki veriler aşağıdaki gibi iki boyutlu bir dizi olarak gösterilebilir.
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]
Bir Matristeki Değerlere Erişim
Bir matristeki veri elemanlarına indeksler kullanılarak erişilebilir. Erişim yöntemi, iki boyutlu dizide verilere erişilme yöntemiyle aynıdır.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
# Print data for Wednesday
print(m[2])
# Print data for friday evening
print(m[4][3])
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
['Wed', 15, 21, 20, 19]
23
Bir satır eklemek
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m_r = append(m,[['Avg',12,15,13,11]],0)
print(m_r)
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']
['Avg' '12' '15' '13' '11']]
Bir sütun eklemek
İnsert () yöntemini kullanarak bir matrise sütun ekleyebiliriz. burada sütunu eklemek istediğimiz dizini ve eklenen sütunların yeni değerlerini içeren bir diziyi belirtmek zorundayız. Aşağıdaki örnekte, başlangıçtan beşinci konuma yeni bir sütun ekliyoruz.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)
print(m_c)
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
[['Mon' '18' '20' '22' '17' '1']
['Tue' '11' '18' '21' '18' '2']
['Wed' '15' '21' '20' '19' '3']
['Thu' '11' '20' '22' '21' '4']
['Fri' '18' '17' '23' '22' '5']
['Sat' '12' '22' '20' '18' '6']
['Sun' '13' '15' '19' '16' '7']]
Matristen bir satırı silme
Delete () yöntemini kullanarak bir matristen bir satırı silebiliriz. Satırın indeksini ve ayrıca bir satır için 0 ve bir sütun için 1 olan eksen değerini belirtmeliyiz.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = delete(m,[2],0)
print(m)
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]
Matristen bir sütun silme
Delete () yöntemini kullanarak bir matristen bir sütunu silebiliriz. Sütunun indeksini ve ayrıca bir satır için 0 ve bir sütun için 1 olan eksen değerini belirtmeliyiz.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = delete(m,s_[2],1)
print(m)
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
[['Mon' '18' '22' '17']
['Tue' '11' '21' '18']
['Wed' '15' '20' '19']
['Thu' '11' '22' '21']
['Fri' '18' '23' '22']
['Sat' '12' '20' '18']
['Sun' '13' '19' '16']]
Matristeki bir satırı güncelleme
Bir matrisin satırındaki değerleri güncellemek için, satırın dizinindeki değerleri yeniden atarız. Aşağıdaki örnekte, thrursday verileri için tüm değerler sıfır olarak işaretlenmiştir. Bu satırın endeksi 3'tür.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m[3] = ['Thu',0,0,0,0]
print(m)
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '0' '0' '0' '0']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]