Tha iomadachadh matrix na ghnìomhachd bunaiteach ann an ailseabra sreathach.
Mar as trice bidh sinn ga chleachdadh ann an grunn thagraidhean leithid giullachd ìomhaighean, ionnsachadh innealan, agus mòran a bharrachd. Tha NumPy na phasgan sònraichte Python airson coimpiutaireachd saidheansail.
Ach, anns an dreuchd seo, seallaidh sinn ri diofar dhòighean airson iomadachadh matrix a dhèanamh ann am Python gun a bhith a’ cleachdadh NumPy.
Cleachdaidh sinn lùban neadachaidh, an gnìomh mapa () togte, agus tuigse liosta.
A bharrachd air an sin, seallaidh sinn ri buannachdan agus eas-bhuannachdan gach ro-innleachd, a bharrachd air cuin a bu chòir gach fear dhiubh a chuir an sàs. Ma tha thu ùr do ailseabra sreathach agus gu bheil thu airson barrachd ionnsachadh mu iomadachadh matrix; lean ort a’ leughadh.
Càite am bi sinn a 'cleachdadh iomadachadh Matrix?
Bithear a’ cleachdadh iomadachadh matrix ann an grafaigean coimpiutair gus ìomhaighean 2D agus 3D atharrachadh. Mar eisimpleir, faodaidh tu rudan a thionndadh, a sgèile agus eadar-theangachadh air an sgrion. Bithear a’ cleachdadh matrix ann an giullachd ìomhaighean gus dealbhan a riochdachadh mar arrays de piogsail. A bharrachd air an sin, faodar matrixes a chleachdadh gus gnìomhachd a dhèanamh leithid sìoladh ìomhaighean.
Bidh sinn cuideachd a’ cleachdadh matrixes ann an ionnsachadh innealan. Faodaidh iad ar cuideachadh gus dàta agus paramadairean modail a riochdachadh. Is urrainn dhuinn grunn obrachaidhean a dhèanamh, leithid toraidhean dot coimpiutaireachd agus toraidhean matrix-vector.
Gu cinnteach, tha an obair seo cuideachd gu math buannachdail ann an gnìomhachd saidheansail. Faodaidh sinn a chleachdadh ann am fiosaigs agus innleadaireachd gus cunntas a thoirt air meudan corporra. Mar sin, is urrainn dhuinn obrachadh le vectaran agus tensors.
Carson nach fhaod sinn roghnachadh NumPy a chleachdadh?
Ged a tha NumPy a Python leabharlann, chan eil e an-còmhnaidh na dheagh roghainn airson iomadachadh matrix. Is dòcha nach roghnaich sinn NumPy a chleachdadh airson adhbharan leithid meud agus eisimeileachd, ionnsachadh, agus siostaman dìleab.
Is dòcha gum bi cleachdadh gnìomhan togte Python no leasachadh còd gnàthaichte nas èifeachdaiche ann an cuid de shuidheachaidhean. Tha e deatamach a thoirt fa-near, ge-tà, gur e leabharlann làidir a th’ ann an NumPy. A bharrachd air an sin, faodaidh tu cuideachd a chleachdadh airson iomadachadh matrix.
A-nis, leig dhuinn sùil a thoirt air mar as urrainn dhuinn iomadachadh matrix a choileanadh às aonais NumPy.
Modh lùban neadachaidh
Bidh an dòigh lùban neadachaidh a’ cleachdadh lùban neadachaidh gus iomadachadh matrix a chuir an gnìomh ann am Python. Bidh an gnìomh ag ath-aithris thairis air gach eileamaid matrix. Agus, bidh e gan iomadachadh le bhith a’ cleachdadh sreath de lùban neadachaidh. Bidh an gnìomh a 'tilleadh an toradh, a tha air a stòradh ann am matrix ùr.
Tha an dòigh-obrach seo furasta a thuigsinn. Ach, is dòcha nach bi e cho èifeachdach ri dòighean eile, gu sònraichte airson matrics nas motha. Ach, tha e na dheagh roghainn dhut ma tha thu ùr do ailseabra sreathach.
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])
# Suidhich am matrix toraidh gu neoni.
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
Bheir sinn eisimpleir air mar a nì sinn seo. Faodaidh tu dìreach na loidhnichean còd seo a chuir ris gu h-ìosal gus an eisimpleir seo a dhearbhadh.
# 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]]
buannachdan:
- Furasta a thuigsinn.
- Fìor mhath dha newbies no dhaibhsan a tha a ’sireadh tuigse nas doimhne air iomadachadh matrix.
Eas-bhuannachdan:
- Chan eil e cho èifeachdach ri dòighean eile, gu sònraichte airson matrics nas motha.
- Chan eil e cho furasta a leughadh ri dòighean eile.
map() modh gnìomh
Tha modh gnìomh mapa () a’ toirt seachad dòigh-obrach eile airson iomadachadh matrix ann am Python. San dòigh-obrach seo, bidh sinn a’ cleachdadh a’ ghnìomh mapa () togte. Mar sin, bidh sinn a’ cleachdadh inneal prògramadh gnìomh a chuireas gnìomh a chaidh a sholarachadh an sàs anns gach eileamaid a ghabhas ath-aithris (liosta, tuple, msaa). Cuideachd, tha gnìomh a’ mhapa () a’ gabhail ri dà pharamadair, gnìomh agus a ghabhas a dhèanamh. Agus, bidh e a’ tilleadh iterator a bhios a’ cur a’ ghnìomh gu gach eileamaid a ghabhas ath-aithris.
San dòigh-obrach seo, bidh sinn a’ dol tro gach ball den mhaitris agus a’ dèanamh an iomadachaidh a’ cleachdadh a’ ghnìomh neadachaidh mapa().
Tha an gnìomh zip () air a chleachdadh gus ath-aithris tro gach eileamaid de na matrices ann an co-shìnte.
Mu dheireadh, tha an gnìomh sum() air a chleachdadh gus na toraidhean a chur suas.
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
A-nis, a-rithist, is urrainn dhuinn ar còd a dhearbhadh le eisimpleir.
# 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]]
buannachdan
- Nas èifeachdaiche na an dòigh-obrach lùban cruachan
- Bidh e a’ cleachdadh prògramadh gnìomh gus an còd a dhèanamh nas sìmplidhe.
Eas-bhuannachdan
- Is dòcha gum bi cuid de dhaoine nach eil eòlach air prògramadh gnìomh cho furasta a leughadh.
- Chan eil e cho furasta a thuigsinn na an dòigh lùban neadachaidh.
Liosta dòigh tuigse
Leigidh tuigse liosta leat liosta ùr a ghineadh ann an aon loidhne de chòd. Mar sin, tha seo le bhith a’ cur abairt ri gach ball de liosta a tha ann mu thràth.
Anns an dòigh-obrach seo, thèid iomadachadh a dhèanamh le bhith ag ath-aithris a-rithist tro gach ball matrix. Tha sinn a’ cleachdadh tuigse liosta sreathach.
# 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]]
buannachdan
- An coimeas ri modh gnìomh mapa (), nas giorra agus nas leughaidh.
Eas-bhuannachdan
- Is dòcha nach bi e cho èifeachdach ri bhith a’ cleachdadh gnìomh mapa(), gu sònraichte airson matrices mòra.
- Tha e nas duilghe na dòigh-obrach lùban neadachaidh.
Co-dhùnadh
Anns an dreuchd seo, choimhead sinn air roghainnean eile seach a bhith a’ cleachdadh NumPy nuair a bha sinn ag iomadachadh matrices ann am Python. Rinn sinn iomadachadh matrix ann an lùban neadachaidh, gnìomh mapa () togte, agus tuigse liosta.
Bidh an ro-innleachd as fheàrr an urra ri feumalachdan sònraichte a’ phròiseict agad.
Tha buannachdan agus eas-bhuannachdan aig gach aon de na ro-innleachdan fhèin. Gus dèanamh cinnteach gu bheil an gnìomh ag obair gu ceart, is e deagh bheachd a th’ ann cuid de chùisean deuchainn a chuir ris le diofar mheudan agus luachan matrix.
Bu chòir dhut cuideachd cuid de dheuchainnean coileanaidh a thoirt a-steach gus coimeas a dhèanamh eadar dè cho math ‘s a tha na modhan sin a’ coileanadh.
Leave a Reply