Uphinda-phindo lwematriki ngumsebenzi osisiseko kwialgebra yomgca.
Ngokuqhelekileyo siyisebenzisa kwizicelo ezininzi ezinje ngokusetyenzwa kwemifanekiso, ukufunda ngomatshini, nokunye okuninzi. I-NumPy yiphakheji ephawulekayo yePython yekhompyutha yesayensi.
Nangona kunjalo, kule posi, siza kujonga iindlela ezahlukeneyo zokwenza ukuphindaphinda kwe-matrix kwiPython ngaphandle kokusebenzisa iNumPy.
Siza kusebenzisa iziporo ezinendawo yokuhlala, imephu eyakhelwe-ngaphakathi () umsebenzi, kunye noluhlu lokuqonda.
Ukongeza, siza kujonga izibonelelo kunye nezithintelo zesicwangciso ngasinye, kunye nexesha lokusebenzisa nganye yazo. Ukuba umtsha kumgca wealjebra kwaye ufuna ukufunda ngakumbi malunga nophindaphindo lwematriki; qhubeka ufunda.
Sisebenzisa phi ukuphindaphinda kweMatrix?
Uphinda-phindo lweMatrix lusetyenziswa kwi imizobo yekhompyuter ukuguqula i-2D kunye ne-3D ebonakalayo. Umzekelo, ungajikeleza, ukale, kwaye uguqulele izinto ezikwisikrini. Iimatriksi zisetyenziswa ekusetyenzweni komfanekiso ukubonisa imifanekiso njengoluhlu lweepikseli. Ngaphandle koko, iimatrix zinokusetyenziselwa ukwenza imisebenzi efana nokucoca umfanekiso.
Sikwasebenzisa iimatrix yokufunda umatshini. Bangasinceda ukuba sibonise idatha kunye neeparamitha zemodeli. Singaqhuba imisebenzi emininzi, efana neemveliso zamachaphaza ekhompyuter kunye neemveliso ze-matrix-vector.
Ngokuqinisekileyo, lo msebenzi uluncedo kakhulu kwimisebenzi yesayensi. Singayisebenzisa kwifiziksi kunye nobunjineli ukuchaza ubungakanani bomzimba. Ke ngoko, sinokusebenza ngee-vectors kunye ne-tensor.
Kutheni singenakukhetha ukusebenzisa iNumPy?
Ngelixa iNumPy i Ithala leencwadi lePython, ayisoloko ilukhetho olufanelekileyo lophindaphindo lwematriki. Asinakukhetha ukusebenzisa iNumPy ngezizathu ezifana nobukhulu nokuxhomekeka, ukufunda, kunye neenkqubo zelifa.
Ukusebenzisa imisebenzi eyakhelwe-ngaphakathi yePython okanye ukuphuhlisa ikhowudi yesiko kunokusebenza ngakumbi kwiimeko ezithile. Kubalulekile ukuqaphela, nangona kunjalo, ukuba iNumPy lithala leencwadi elomeleleyo. Ngaphandle koko, unokuyisebenzisela uphinda-phindo lwematrix.
Ngoku, makhe sijonge ukuba singafikelela njani ekuphindaphindeni kwe-matrix ngaphandle kweNumPy.
Indlela ye-loops eneed
Ubuchwephesha obujikelezileyo obufakwe kwindlwane busebenzisa iiluphu ezinendlwana ukwenza uphinda-phindo lwematrix kwiPython. Umsebenzi uphindaphinda into nganye yematrix. Kwaye, iyaziphindaphinda isebenzisa uthotho lwezirhintyela ezifakwe kwindlwane. Umsebenzi ubuyisela umphumo, ogcinwe kwi-matrix entsha.
Le ndlela ilula ukuyibamba. Nangona kunjalo, isenokungasebenzi njengezinye iindlela, ngakumbi kwiimatriki ezinkulu. Nangona kunjalo, lukhetho oluhle kuwe ukuba umtsha kumgca we-algebra.
def matrix_multiplication(A, B):
# Determine the matrices' dimensions.
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# Seta iziphumo zematrix zibe zeroes.
result = [[0 for row in range(cols_B)] for col in
range(rows_A)]
# Iterate through rows of A
for s in range(rows_A):
# Iterate through columns of B
for j in range(cols_B):
# Iterate through rows of B
for k in range(cols_A):
result[s][j] += A[s][k] * B[k][j]
return result
Masibe nomzekelo wendlela yokwenza oku. Unokongeza le migca yekhowudi engezantsi ukuvavanya lo mzekelo.
# Sample matrices
A = [[1, 4, 3], [4, 9, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Perform matrix multiplication
result = matrix_multiplication(A, B)
# Print the result
print(result)
# Output: [[76, 84], [175, 194]]
inzuzo:
- Kulula ukuqonda.
- Ilungele abasaqalayo okanye abo bafuna ukuqonda okunzulu kophindaphindo lwematrix.
Ilishwa:
- Ayisebenzi njengezinye iindlela, ngakumbi kwiimatriki ezinkulu.
- Ayifundeki njengezinye iindlela.
imephu () indlela yokusebenza
Imephu () indlela yokusebenza inikeza enye indlela yokwenza uphinda-phindo lwematriki kwiPython. Kule ndlela, sisebenzisa imephu eyakhelwe-ngaphakathi () umsebenzi. Ngenxa yoko, sisebenzisa isixhobo esisebenzayo sokucwangcisa esisebenzisa umsebenzi onikiweyo kwinto nganye enokuphinda ibonwe (uluhlu, i-tuple, njl.). Kwakhona, imephu () umsebenzi wamkela ezimbini iparameters, umsebenzi kunye ne iterable. Kwaye, ibuyisela i-iterator efaka umsebenzi kwinto nganye enokuphinda iphindwe.
Ngale ndlela, sidlula kwilungu ngalinye le-matrix kwaye senze uphinda-phindo sisebenzisa imephu enendlwana () umsebenzi.
I zip () umsebenzi usetyenziswa ukuphinda-phinda into nganye ye matrices ngokunxuseneyo.
Okokugqibela, isibalo () umsebenzi usetyenziswa ukudibanisa iziphumo.
def matrix_multiplication(A, B):
# To get the dimensions of the matrices
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# We use map() function for multiplication.
result = [[sum(a * b for a, b in zip(row_a, col_b)) for
col_b in zip(*B)] for row_a in A]
return result
Ngoku, kwakhona, sinokuvavanya ikhowudi yethu ngomzekelo.
# Example matrices
A = [[3, 2, 3], [4, 5, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Use map() function to perform matrix multiplication
result = list(map(lambda x: list(map(lambda y: sum(i*j
for i,j in zip(x,y)), zip(*B))), A))
# Print the result
print(result)
# Output: [[72, 80], [139, 154]]
eziluncedo
- Isebenza ngakumbi kunendlela ye-loops eqokelelweyo
- Isebenzisa inkqubo esebenzayo ukwenza ikhowudi ibe lula.
nezingeloncedo
- Abanye abantu abangaqhelananga nenkqubo esebenzayo banokuyifumana ingafundeki kangako.
- Ayiqondakalanga kangako kunendlela yobuchule be-loops enendlwane.
Uluhlu lwendlela yokuqonda
Uluhlu lokuqonda lukwenza ukuba wenze uluhlu olutsha kumgca omnye wekhowudi. Kungoko, oku kungokusebenzisa ibinzana kwilungu ngalinye loluhlu olukhoyo.
Kule ndlela, ukuphindaphinda kwenziwa ngokuphindaphinda ngokuphindaphindiweyo ngelungu ngalinye le-matrix. Sisebenzisa ukuqonda koluhlu.
# Sample matrices
A = [[1, 12, 3], [14, 5, 6]]
B = [[7, 8], [9, 10], [12, 12]]
# Matrix multiplication using list comprehension
result = [[sum(A[i][k] * B[k][j] for k in range(len(A[0])))
for j in range(len(B[0]))] for i in range(len(A))]
# Print the result
print(result)
[[151, 164], [215, 234]]
benefits
- Xa kuthelekiswa nemephu () indlela yokusebenza, mfutshane kwaye ifundeka ngakumbi.
nezingeloncedo
- Isenokungasebenzi kancinane kunokusebenzisa imephu() umsebenzi, ngakumbi kwimatriki ezinkulu.
- Kunzima kakhulu kunendlela ye-loops enendlwane.
isiphelo
Kule post, sijonge ezinye iindlela zokusebenzisa iNumPy xa uphinda-phinda imatrices kwiPython. Senze uphinda-phindo lwematriki kwiiluphu ezinendlwana, imephu eyakhelwe-ngaphakathi () umsebenzi, kunye noluhlu lokuqonda.
Isicwangciso esilungileyo siya kuxhomekeka kwiimfuno ezithile zeprojekthi yakho.
Isicwangciso ngasinye sineenzuzo kunye neengozi zaso. Ukuqinisekisa ukuba umsebenzi usebenza ngokufanelekileyo, luluvo oluhle ukongeza iimeko zovavanyo ezinemilinganiselo eyahlukeneyo yematriki kunye namaxabiso.
Kuya kufuneka ubandakanye iimvavanyo ezithile zokusebenza ukuthelekisa ukuba ezi ndlela zisebenza kakuhle kangakanani.
Shiya iMpendulo