Perkalian matriks nyaéta operasi dasar dina aljabar linier.
Urang umumna ngagunakeun éta dina sababaraha aplikasi sapertos pamrosésan gambar, pembelajaran mesin, sareng seueur deui. NumPy mangrupikeun pakét Python anu kasohor pikeun komputasi ilmiah.
Nanging, dina tulisan ieu, urang bakal ningali sababaraha cara pikeun ngalakukeun multiplikasi matriks dina Python tanpa ngagunakeun NumPy.
Urang bakal ngamangpaatkeun puteran sayang, fungsi map () diwangun-di, sarta daptar pamahaman.
Salaku tambahan, urang bakal ningali kauntungan sareng kalemahan unggal strategi, ogé nalika nerapkeun masing-masing. Upami anjeun énggal kana aljabar linier sareng hoyong diajar langkung seueur ngeunaan perkalian matriks; terus maca.
Dimana Urang Ngagunakeun Matrix Multiplication?
Multiplication matrix dipaké dina grafik komputer pikeun ngarobih visual 2D sareng 3D. Contona, anjeun tiasa muterkeun, skala, sareng narjamahkeun obyék dina layar. Matrix dipaké dina ngolah gambar pikeun ngagambarkeun gambar salaku arrays piksel. Salian ti éta, matriks tiasa dianggo pikeun ngalaksanakeun operasi sapertos nyaring gambar.
Urang ogé ngagunakeun matrixes di learning mesin. Éta tiasa ngabantosan urang ngagambarkeun data sareng parameter modél. Urang tiasa ngalaksanakeun sababaraha operasi, sapertos komputasi produk titik sareng produk matriks-vektor.
Pasti, operasi ieu ogé pohara nguntungkeun dina operasi ilmiah. Urang tiasa nganggo éta dina fisika sareng rékayasa pikeun ngajelaskeun kuantitas fisik. Lantaran kitu, urang tiasa beroperasi sareng vektor sareng tensor.
Naha Urang Teu Bisa Milih Ngagunakeun NumPy?
Sedengkeun NumPy nyaeta a perpustakaan Python, teu salawasna pilihan idéal pikeun multiplication matrix. Urang panginten henteu milih ngagunakeun NumPy kusabab alesan sapertos ukuran sareng kagumantungan, diajar, sareng sistem warisan.
Ngagunakeun fungsi diwangun-di Python atawa ngamekarkeun kode custom bisa jadi leuwih efisien dina sababaraha instansi. Penting pikeun dicatet yén NumPy mangrupikeun perpustakaan anu kuat. Sagedengeun ti eta, Anjeun oge bisa make eta pikeun multiplication matrix.
Ayeuna, hayu urang tingali kumaha urang tiasa ngahontal multiplikasi matriks tanpa NumPy.
Métode loop Nested
Téhnik loop nested ngagunakeun loop nested pikeun ngaéksekusi multiplikasi matriks dina Python. Fungsi iterates leuwih unggal unsur matrix. Na, éta multiplies aranjeunna ngagunakeun runtuyan loop nested. fungsi nu mulih hasilna, nu disimpen dina matrix anyar.
pendekatan ieu lugas pikeun nangkep. Nanging, éta tiasa henteu éfisién sapertos cara sanés, khususna pikeun matriks anu langkung ageung. Nanging, éta mangrupikeun pilihan anu saé pikeun anjeun upami anjeun énggal dina aljabar linier.
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 hasil kana 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
Hayu urang gaduh conto kumaha ngalakukeun ieu. Anjeun ngan ukur tiasa nambihan garis kode ieu di handap pikeun nguji conto ieu.
# 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]]
mangpaat:
- Gampang kaharti.
- Saé pikeun pemula atanapi anu milari pamahaman anu langkung jero ngeunaan multiplikasi matriks.
kalemahan:
- Henteu efektif sapertos téknik alternatif, khususna pikeun matriks anu langkung ageung.
- Éta henteu tiasa dibaca sapertos pendekatan alternatif.
peta () métode fungsi
Metoda fungsi map () nyadiakeun pendekatan alternatif pikeun ngalakukeun multiplication matrix di Python. Dina pendekatan ieu, kami nganggo diwangun-di map () fungsi. Lantaran kitu, kami nganggo alat program fungsional anu nerapkeun fungsi anu disayogikeun ka unggal unsur anu tiasa diiterkeun (daptar, tuple, jsb.). Ogé, fungsi map () narima dua parameter, hiji fungsi jeung hiji iterable. Na, eta mulih hiji iterator nu nerapkeun fungsi ka unggal unsur iterable.
Dina pendekatan ieu, urang ngaliwat unggal anggota matriks jeung ngalakukeun multiplication ngagunakeun peta nested () fungsi.
The zip () fungsi dipaké pikeun iterate ngaliwatan unggal unsur matrices dina paralel.
Tungtungna, jumlah () fungsi dipaké pikeun nambahkeun nepi hasil.
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
Ayeuna, deui, urang tiasa nguji kode urang sareng 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]]
kaunggulan
- Leuwih éféktif batan pendekatan loop tumpuk
- Éta ngagunakeun program fungsional pikeun ngajantenkeun kode langkung saderhana.
kalemahan
- Sababaraha jalma anu teu wawuh sareng program fungsional tiasa mendakan éta kirang dibaca.
- Ieu kirang kaharti ti téhnik loop nested.
Métode pamahaman daptar
Pamahaman daptar ngamungkinkeun anjeun ngahasilkeun daptar énggal dina hiji baris kode. Lantaran kitu, ieu ku cara nerapkeun ekspresi ka unggal anggota daptar anu aya.
Dina pendekatan ieu, multiplikasi dilaksanakeun ku sababaraha kali iterating ngaliwatan unggal anggota matriks. Kami nganggo pamahaman daptar 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]]
mangpaat
- Dibandingkeun jeung peta () métode fungsi, pondok tur leuwih dibaca.
kalemahan
- Bisa jadi kurang éféktif batan ngagunakeun map () fungsi, utamana pikeun matrices badag.
- Éta langkung hese tibatan pendekatan loop nested.
kacindekan
Dina tulisan ieu, urang ningali alternatif pikeun ngagunakeun NumPy nalika ngalikeun matriks dina Python. Urang ngalaksanakeun multiplication matrix dina loop nested, diwangun-di map () fungsi, sarta daptar pamahaman.
Strategi pangsaéna bakal ngandelkeun kabutuhan khusus pikeun proyék anjeun.
Masing-masing strategi gaduh pro sareng kontra sorangan. Pikeun mastikeun yén fungsina jalan leres, éta hadé pikeun nambihan sababaraha kasus uji kalayan sagala rupa dimensi sareng nilai matriks.
Anjeun ogé kedah nyertakeun sababaraha tés kinerja pikeun ngabandingkeun kumaha padika ieu dilaksanakeun.
Leave a Reply