Зарбкунии матритса як амали асосӣ дар алгебраи хатӣ мебошад.
Мо онро одатан дар барномаҳои сершумор, аз қабили коркарди тасвир, омӯзиши мошинсозӣ ва бисёр чизҳои дигар истифода мебарем. NumPy як бастаи намоёни Python барои ҳисоббарории илмӣ мебошад.
Аммо, дар ин паём, мо усулҳои гуногуни анҷом додани зарби матритсаро дар Python бидуни истифодаи NumPy дида мебароем.
истифода мебарем ҳалқаҳо лона, функсияи дарунсохт харитаи () ва фаҳмиши рӯйхат.
Илова бар ин, мо ба манфиатҳо ва нуқсонҳои ҳар як стратегия, инчунин кай истифода бурдани ҳар яки онҳоро дида мебароем. Агар шумо дар алгебраи хатӣ нав бошед ва хоҳед, ки дар бораи зарби матритса маълумоти бештар гиред; хонданро давом диҳед.
Мо зарбкунии матритсаро дар куҷо истифода мебарем?
Зарбкунии матритса дар графикаи компютерӣ барои тағир додани визуалӣ 2D ва 3D. Масалан, шумо метавонед объектҳоро дар экран гардиш кунед, миқёс кунед ва тарҷума кунед. Матритсаҳо дар коркарди тасвирҳо барои муаррифии тасвирҳо ҳамчун массивҳои пиксел истифода мешаванд. Ғайр аз он, матритсаҳоро барои анҷом додани амалиётҳо ба монанди филтркунии тасвир истифода бурдан мумкин аст.
Мо инчунин матритсаҳоро дар омӯзиши машқҳо. Онҳо метавонанд ба мо дар муаррифии параметрҳои додаҳо ва модел кӯмак расонанд. Мо метавонем амалиётҳои сершумор, ба монанди ҳисоббарории маҳсулоти нуқта ва маҳсулоти матритса-векториро иҷро кунем.
Албатта, ин амалиёт дар амалиёти илмӣ низ хеле фоиданок аст. Мо метавонем онро дар физика ва муҳандисӣ барои тавсифи миқдорҳои ҷисмонӣ истифода барем. Аз ин рӯ, мо метавонем бо векторҳо ва тензорҳо кор кунем.
Чаро мо метавонем истифодаи NumPy-ро интихоб накунем?
Дар ҳоле ки NumPy як аст Китобхонаи Python, он на ҳамеша варианти беҳтарин барои зарбкунии матритса аст. Мо наметавонем истифодаи NumPy-ро бо сабабҳо ба монанди андоза ва вобастагӣ, омӯзиш ва системаҳои кӯҳна интихоб накунем.
Истифодаи функсияҳои дарунсохташудаи Python ё таҳияи рамзи фармоишӣ метавонад дар баъзе мавридҳо самараноктар бошад. Бо вуҷуди ин, қайд кардан муҳим аст, ки NumPy китобхонаи қавӣ аст. Ғайр аз он, шумо метавонед онро барои зарбкунии матритса низ истифода баред.
Акнун биёед бубинем, ки чӣ тавр мо метавонем бе NumPy зарбкунии матритсаро ба даст орем.
Усули ҳалқаҳои лона
Техникаи ҳалқаҳои лона барои иҷрои зарби матритса дар Python ҳалқаҳои лонаро истифода мебарад. Функсия дар болои ҳар як элементи матритса такрор мешавад. Ва он онҳоро бо истифода аз як қатор ҳалқаҳои лона зиёд мекунад. Функсия натиҷаеро бармегардонад, ки дар матритсаи нав нигоҳ дошта мешавад.
Ин равиш барои фаҳмидан осон аст. Аммо, он метавонад мисли дигар роҳҳо самаранок набошад, махсусан барои матритсаҳои калонтар. Аммо, агар шумо дар алгебраи хатӣ нав бошед, ин барои шумо интихоби олиҷаноб аст.
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])
# Матритсаи натиҷаро ба сифр муқаррар кунед.
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
Биёед мисолеро дар бораи чӣ гуна иҷро кардани ин кор кунем. Шумо метавонед танҳо ин сатрҳои кодро дар зер илова кунед, то ин мисолро санҷед.
# 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]]
Манфиатҳо:
- Фаҳмидани осон.
- Барои навоварон ё онҳое, ки фаҳмиши амиқтари зарбкунии матритсаро мехоҳанд, олӣ аст.
нуқсонҳои:
- На ҳамчун усулҳои алтернативӣ, махсусан барои матритсаҳои калонтар.
- Он мисли равишҳои алтернативӣ хонданӣ нест.
Усули функсияи map().
Усули функсияи map() равиши алтернативӣ барои анҷом додани зарбкунии матритсаро дар Python таъмин мекунад. Дар ин равиш, мо функсияи дарунсохташудаи map() -ро истифода мебарем. Аз ин рӯ, мо асбоби функсионалии барномасозиро истифода мебарем, ки ба ҳар як унсури такроршаванда (рӯйхат, навор ва ғайра) функсияи додашударо татбиқ мекунад. Инчунин, Функсияи map() ду параметр, функсия ва такроршавандаро қабул мекунад. Ва он итератореро бармегардонад, ки функсияро ба ҳар як унсури такроршаванда татбиқ мекунад.
Дар ин равиш, мо ҳар як узви матритсаро мегузарем ва бо истифода аз функсияи nested map() зарбкуниро иҷро мекунем.
Функсияи zip () барои такрор кардани ҳар як элементи матритсаҳо дар баробари параллел истифода мешавад.
Ниҳоят, функсияи sum() барои ҷамъ кардани натиҷаҳо истифода мешавад.
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
Акнун, боз, мо метавонем рамзи худро бо як мисол санҷем.
# 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]]
афзалиятҳо
- Аз равиши ҳалқаҳои ҷамъшуда самараноктар аст
- Он барои содда кардани код барномасозии функсионалӣ истифода мебарад.
нуқсонҳои
- Баъзе одамоне, ки бо барномасозии функсионалӣ ошно нестанд, метавонанд онро камтар хонда шаванд.
- Он нисбат ба техникаи ҳалқаҳои лона камтар фаҳмо аст.
Усули фаҳмиши рӯйхат
Фаҳмиши рӯйхат ба шумо имкон медиҳад, ки дар як сатри код рӯйхати нав эҷод кунед. Аз ин рӯ, ин бо истифодаи ифода ба ҳар як узви рӯйхати мавҷуда аст.
Дар ин равиш, зарбкунӣ тавассути такрори такрорӣ тавассути ҳар як узви матритса анҷом дода мешавад. Мо фаҳмиши рӯйхати қабатро истифода мебарем.
# 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]]
Манфиатҳо
- Дар муқоиса бо усули функсионалии map() кӯтоҳтар ва хондашаванда.
нуқсонҳои
- Он метавонад аз истифодаи функсияи map(), махсусан барои матритсаҳои калон самараноктар бошад.
- Ин аз наздикшавии ҳалқаҳои лона душвортар аст.
хулоса
Дар ин паём, мо алтернативаҳоро барои истифодаи NumPy ҳангоми зарб кардани матритсаҳо дар Python дида баромадем. Мо зарбкунии матритсаро дар ҳалқаҳои лона, функсияи дарунсохт map() ва фаҳмиши рӯйхат иҷро кардем.
Стратегияи беҳтарин ба эҳтиёҷоти махсуси лоиҳаи шумо такя мекунад.
Ҳар як стратегия тарафҳои мусбат ва манфии худро дорад. Барои боварӣ ҳосил кардани он, ки функсия дуруст кор мекунад, хуб аст, ки баъзе ҳолатҳои санҷиширо бо андозаҳо ва арзишҳои гуногуни матритса илова кунед.
Шумо инчунин бояд якчанд санҷишҳои иҷроишро дохил кунед, то то чӣ андоза хуб иҷро кардани ин усулҳоро муқоиса кунед.
Дин ва мазҳаб