Numpy Dizisinde For Döngüsü ve Python'da Matris İşlemleri Hakkında


#1

merhaba ;
oluşturduğum bir numpy dizi üzerinde for döngüsü ile gezinmek istiyorum fakat aşağıdaki hatayı alıyorum.
IndexError Traceback (most recent call last)
in ()
6 print(i,j,k,l)
7
----> 8 M[k][l]=M[k][l]+K[i][j]

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices
Yapmak istediğim şeyi anlatayım.hane_numarası=[0,1,2,3,4,5] bu diziden 36 * 2 lik diziler oluşturdum. [0,0],[0,1] gibi daha sonra kod_numarası=[6,7,8,3,4,5] benzer şekide bu dizi den 36 * 2 lik bir dizi oluşturdum. daha sonra bunları hstack kodu ile 4*32 lik bir diziye çevirdim örnek olarak [[0. 0. 6. 6.]] bu şekilde

buraya kadar olan kısım ana matrisi oluşturacak satır ve sutun numaralarını bir matris içinde toplamaktı.

daha sonra oluşturduğum bu 4 sütünluk matriste for ile gezinip M matrisinin(9 * 9 luk zero matris) içini K matrisinin(6*6 lık içi her hangi bir matris) değerleri ile doldurmak istiyorum. fakat array olan f matrisi üzerinde for döngüsü çalışmıyor. tolist ile listeye çevirdim yine hata veriyor. ama benzer 4 sütünluk matrisleri list olarak kendim atatınca for döngüsü oluşuyor bu neyden kaynaklı hata ?

bir diğer sorum ise python dili Matris işlemleri için yatkın bir dil mi ? danışman hocam çok zor oldunuğun dilin zorlukları ile uğraşmadan fortran ya da basic diline geçmemi söylüyor sizce nasıl yapayım ?

K=[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
from numpy import *
hane_numarası=[0,1,2,3,4,5]
d=array([])
e=array([])
for i in hane_numarası:
    for j in hane_numarası:
        b=array((i,j))
        d=hstack((d,b))
        ##print(b)

kod_numarası=[6,7,8,3,4,5]
for i in kod_numarası:
    for j in kod_numarası:
        c=array([i,j])
               
        e=hstack((e,c))

d=d.reshape(36,2)
print("d matrisi = ",d)

e=e.reshape(36,2)
print("e mtrisi = ",e)
f=hstack((d,e))
print("f mtrisi = ",f)

M=zeros([9,9])

for i,j,k,l in n :
    M[k][l]=M[k][l]+K[i][j]
    print(M)

`


#2

Kodda hata var:

Traceback (most recent call last):
  File "a.py", line 29, in <module>
    for i,j,k,l in n :
NameError: name 'n' is not defined

Python buna yatkin bir degil fakat operator overloading’e izin veriyor. numpy gibi kutuphaneler de bunu kullanarak son derece yatkin hale getiriyorlar. a = x * y denildiginde milyonluk vektoru otomatik olarak ekran kartina upload edip vektor islemcisine carptirip sonucu donduren kutuphaneler de var.

Danismanin halt etmis. Octave dese MATLAB dese, ne bileyim R dese anlayacagim da, BASIC ne yahu? Nasil daha kolay olabilecegini aklim almiyor, Fortran'da bile. Deneyin gorun ama, hangisi daha rahat geliyorsa…


#3

Danışmanınız Python bilmiyor bence. Python en kolay öğrenilen dildir ve numpy varken matris hesaplamada Python’ın sırtı yere gelmez. Ha acaip karmaşık işlemlerle görüntü işleyeceksinizdir, daha performanslı seçenekler var. Ama kolaylık/performans oranında Python gayet iyi bir konumdadır.