對於一個 $m\times n$ 的矩陣,在編程中求出每一行的和是常見的問題。Python提供了多種解決方案,如使用循環、numpy等庫函數,本文將從這些方面介紹Python矩陣每行求和的實現方法。
一、使用循環實現
最簡單的方法是使用循環遍歷每一行進行求和,如下所示:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row_sum = []
for row in matrix:
sum = 0
for col in row:
sum += col
row_sum.append(sum)
print(row_sum) #[6, 15, 24]
對於每一行,先將sum設為0,然後依次加上該行的每一個元素,最後將行和添加到row_sum列表中。
上述方法雖然易於理解,但是它比較笨重,效率較低,當矩陣的規模較大時,時間複雜度會變得很高。
二、使用numpy實現
NumPy是Python的一個科學計算庫,可以對多維數組進行高效的數值計算。利用NumPy庫中的sum函數可以很輕鬆地求出每行的和。
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
row_sum = np.sum(matrix, axis=1)
print(row_sum) #[6, 15, 24]
使用np.sum函數,設置axis參數為1即可求出每一行的和。
相比於循環實現,使用NumPy庫的方式代碼更為簡潔,計算速度更快,特別是在大規模計算時優勢更為明顯。
三、使用列表推導式實現
Python中的列表推導式可以極大地簡化循環代碼,如下所示:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row_sum = [sum(row) for row in matrix]
print(row_sum) #[6, 15, 24]
使用列表推導式,將矩陣中每一行的和放入列表row_sum中。
與普通的循環方法相比,列表推導式以簡潔的代碼實現了同樣的功能。
結論
本文介紹了Python矩陣每行求和的三種方法:循環遍歷、使用NumPy庫和列表推導式。根據實際情況選擇不同的方法,能夠減少代碼量、提高效率。
原創文章,作者:HWJCP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373824.html