Sorunun ilk kısmına cevap verebilirim. Bir matrisin satır ve sütunlarının yerini değiştirmek istememiz için bir çok sebep olabilir. En doğal görünen kısmı, bir lineer cebir problemine çözüm üretirken, bir matrisin transpozesine ihtiyaç olabilir.
1. Örnek: $A$ bir kare matris ve $|A|\neq 0$ olmak üzere, ters matrisi $$A^{-1} = \dfrac{1}{|A|} \text{Ek}(A)$$
formülü ile bulabiliyoruz Burada $|A|$, $A$ matrisinin determinantıdır. $\text{Ek}(A)$ ise, $A$ matrisinin kofaktörlerinden oluşan matrisin transpozesidir. Bu tür formüller nasıl üretildi, emin değilim ama (doğrusal türdeki) iki bilinmeyenli iki denklem, üç bilinmeyenli üç denklem gibi denklem sistemlerine sistematik (bir tür algoritma veya formül içeren) çözümler araştırılırken elde edilmiş olabileceğini umuyorum. Genel haldeki iki bilinmeyenli iki denklemi çözmek için için kağıt kalemle bu tür formülleri kolayca elde edebiliyoruz:
$$ a_{11}x + a_{12}y = b_{1}$$
$$ a_{21}x + a_{22}y = b_{2}$$
($x, y$ değerlerinin katsayılar türünden çözülmesi işlemlerinin denenmesini tavsiye ederim.) Dolayısıyla bu işlemlerin içinde katsayıları içeren bir tablo (katsayılar matrisi), determinant diye isimlendirilen bir sabit katsayı, satır ve sutunları yer değiştirme işlemi (transpoze) göze çarpmış olabilir. Sonra da bu kavramlar $n$ bilinmeyenli $n$ denklem ($n\times n$ türünde kare matrisler) için genelleştirilmiş olabilir. (Bu örneğime yapılabilecek eklemeler veya düzeltmeler memnuniyetle karşılanacaktır. Eksik-yanlış söylediğim yerler olabilir.)
2. Örnek: Veri biliminde, veri görselleştirme ile ilgili bir örnek vereceğim. Dataframe denilen dikdörtgensel veri tablolarına sahibiz. Bunlar excel dosyalarının görünümüne benzer. Dolayısıyla aslında bir tür matrisle çalışıyoruz demektir. Aşağıdaki ilk resimde üç farklı pokemonun yetenekleri ile ilgili bar chartlar (sütun grafikleri) görüyoruz.
Bu grafiği ve bunları üreten Python kodlarını aldığım yer burası dır. Bu grafiklerde her bir pokemon (örneğin Bulbasaur) için yeteklerinin hangisinin ne kadar etkin olduğunu görmüş oluyoruz. Sp. Atk ve Sp. Def becerileri diğer becerilerinden daha iyi. Fakat benim yapacağım bir başka çalışmada bunların kıyaslanmasının çok anlamlı olmadığı, 3 pokemonun HP değerlerinin bir biriyle kıyaslandığı, yine Attack değerlerinin birbiriyle kıyaslandığı grafiklere ihtiyaç duydum. Daha somut olarak, Firm A, Firm B, Firm C isminde (isimlerini gizlediğim) üç firma var. Bunlar bir sektörde birbirine rakip firmalardır.
Müşterilerin bu firmaların ürünlerine yaptığı binlerce yorum vardır ve bunlar Positive, Negative, Neutral olarak karegorize edilmiştir. Sonra da bir dataframe (matris) haline dönüştürülmüştür. Burada ana firma (Firm A), positive yorumlar yönünden diğerleriyle arasındaki durumu görmek istemektedir. Firm A'nın positive yorumlarının sayısının, negative ve neutral yorumlarının sayısı ile kıyaslanması da elbette bir şeyler ifade ediyor ama Firm A yöneticilerinin asıl merak ettikleri, rakiplerine göre ne durumda olduklarıdır. İkinci türdeki bir grafiği elde etmek için verilen dataframe üzerinde bir transpoze işlemi uygulamam gerektiğini farkettim. Gerekli kodları yazmaya başladım ve günün sonunda görevi başardım :) Atrık benden çeşitli grafikler istenildiğinde, "Pokemon chart eklememi ister misiniz?" diye soruyorum. (Normal adı bar chart olan bu grafik türünün ismini kendi aramızda Pokemon chart koyduk.)