Perkalian matriks minangka operasi dhasar ing aljabar linier.
Umume digunakake ing pirang-pirang aplikasi kayata pangolahan gambar, pembelajaran mesin, lan liya-liyane. NumPy minangka paket Python sing misuwur kanggo komputasi ilmiah.
Nanging, ing kirim iki, kita bakal ndeleng macem-macem cara kanggo nindakake perkalian matriks ing Python tanpa nggunakake NumPy.
Kita bakal nggunakake puteran susuh, fungsi map () sing dibangun, lan pangerten dhaptar.
Kajaba iku, kita bakal katon ing keuntungan lan drawbacks saben strategi, uga nalika kanggo aplikasi saben mau. Yen sampeyan anyar ing aljabar linear lan pengin sinau luwih lengkap babagan perkalian matriks; terus maca.
Ngendi Kita Gunakake Perkalian Matriks?
Perkalian matriks digunakake ing grafis komputer kanggo ngowahi visual 2D lan 3D. Contone, sampeyan bisa muter, skala, lan nerjemahake obyek ing layar. Matriks digunakake ing pangolahan gambar kanggo makili gambar minangka susunan piksel. Kajaba iku, matriks bisa digunakake kanggo nindakake operasi kaya nyaring gambar.
Kita uga nggunakake matriks ing learning machine. Padha bisa bantuan kita kanggo makili data lan model paramèter. Kita bisa nindakake akeh operasi, kayata komputasi produk titik lan produk matriks-vektor.
Mesthine, operasi iki uga mupangati banget ing operasi ilmiah. Kita bisa nggunakake ing fisika lan teknik kanggo njlèntrèhaké jumlah fisik. Mula, kita bisa ngoperasikake vektor lan tensor.
Napa Kita Ora Bisa Milih Gunakake NumPy?
Nalika NumPy minangka a Pustaka Python, ora mesthi pilihan becik kanggo perkalian matriks. Kita bisa uga ora milih nggunakake NumPy amarga alasan kaya ukuran lan ketergantungan, sinau, lan sistem warisan.
Nggunakake fungsi sing dibangun ing Python utawa ngembangake kode khusus bisa uga luwih efisien ing sawetara kasus. Nanging, penting kanggo dicathet yen NumPy minangka perpustakaan sing kuwat. Kajaba iku, sampeyan uga bisa nggunakake kanggo perkalian matriks.
Saiki, ayo goleki kepiye carane entuk perkalian matriks tanpa NumPy.
Metode Nested Loop
Teknik nested loops nggunakake nested loops kanggo nglakokake perkalian matriks ing Python. Fungsi kasebut ngulang saben unsur matriks. Lan, iku multiplies wong nggunakake seri puteran nested. Fungsi kasebut ngasilake asil, sing disimpen ing matriks anyar.
Pendekatan iki langsung dimangerteni. Nanging, bisa uga ora efisien kaya cara liya, utamane kanggo matriks sing luwih gedhe. Nanging, iku pilihan apik kanggo sampeyan yen sampeyan anyar ing aljabar linear.
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])
# Setel matriks asil dadi nol.
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
Ayo duwe conto carane nindakake iki. Sampeyan mung bisa nambah baris kode ing ngisor iki kanggo nyoba conto iki.
# 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]]
Wuku:
- Gampang dimangerteni.
- Apik kanggo pemula utawa sing pengin ngerti babagan perkalian matriks sing luwih jero.
cacat:
- Ora efektif minangka teknik alternatif, utamane kanggo matriks sing luwih gedhe.
- Iku ora bisa diwaca minangka pendekatan alternatif.
metode fungsi map().
Cara fungsi map () menehi pendekatan alternatif kanggo nindakake multiplikasi matriks ing Python. Ing pendekatan iki, kita nggunakake dibangun ing map () fungsi. Mula, kita nggunakake alat pemrograman fungsional sing ngetrapake fungsi sing kasedhiya kanggo saben unsur sing bisa diulang (dhaptar, tuple, lsp.). Uga, fungsi map () nampa rong paramèter, fungsi lan iterable. Na, iku ngasilake iterator sing aplikasi fungsi kanggo saben unsur iterable.
Ing pendekatan iki, kita liwat saben anggota matriks lan nindakake multiplikasi nggunakake map nested () fungsi.
Zip () fungsi digunakake kanggo iterate liwat saben unsur saka matriks ing podo karo.
Pungkasan, fungsi sum () digunakake kanggo nambah asil.
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
Saiki, maneh, kita bisa nyoba kode kita kanthi conto.
# 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]]
Kaluwihan
- Luwih efektif tinimbang pendekatan puteran sing ditumpuk
- Iki nggunakake pemrograman fungsional kanggo nggawe kode luwih gampang.
cacat
- Sawetara wong sing ora ngerti program fungsional bisa uga ora bisa diwaca.
- Iku kurang dingerteni tinimbang teknik puteran nested.
Metode pangerten dhaptar
Pangerten dhaptar ngidini sampeyan nggawe dhaptar anyar ing siji baris kode. Mula, iki kanthi nggunakake ekspresi kanggo saben anggota dhaptar sing wis ana.
Ing pendekatan iki, multiplikasi ditindakake kanthi bola-bali ngulang saben anggota matriks. Kita nggunakake pangerten dhaptar berlapis.
# 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]]
Wuku
- Dibandhingake karo peta () cara fungsi, luwih cendhek lan luwih bisa diwaca.
cacat
- Bisa uga kurang efektif tinimbang nggunakake fungsi map (), utamané kanggo matriks gedhe.
- Iku luwih angel tinimbang pendekatan loop nested.
kesimpulan
Ing kirim iki, kita katon ing alternatif kanggo nggunakake NumPy nalika multiply matriks ing Python. Kita nindakake multiplikasi matriks ing puteran nested, fungsi map () dibangun ing, lan pangerten dhaptar.
Strategi paling apik bakal gumantung ing kabutuhan tartamtu proyek sampeyan.
Saben strategi duwe pro lan kontra dhewe. Kanggo mesthekake yen fungsi kasebut mlaku kanthi bener, luwih becik nambah sawetara kasus uji kanthi macem-macem ukuran lan nilai matriks.
Sampeyan uga kudu nyakup sawetara tes kinerja kanggo mbandhingake kepiye cara iki ditindakake.
Ninggalake a Reply