在Python中,矩陣維求和是經常使用到的操作。矩陣是由多行、多列組成的二維數組。矩陣維求和指將某一維度上的所有元素相加。
# 例如,對于以下矩陣 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 如果要對第一維度求和,結果為 [12, 15, 18] dim1_sum = [sum(row) for row in matrix] print(dim1_sum) # 如果要對第二維度求和,結果為 [6, 15, 24] dim2_sum = [sum(col) for col in zip(*matrix)] print(dim2_sum)
在第一段代碼中,使用列表推導式對矩陣的每一行求和,將結果存儲在一個列表中。在第二段代碼中,使用了一個小技巧:將矩陣進行轉置(使用zip函數),然后再對每一行求和。這樣就能夠方便地對第二維度進行求和。
需要注意的是,在實際應用中,矩陣的維度可能不止兩維。在這種情況下,需要對每一個維度都進行求和,可以使用遞歸函數實現。
def multi_dimensional_sum(matrix, axis): if len(matrix) == 0: return None if axis == 0: return [sum(row) for row in matrix] else: return [multi_dimensional_sum([row[i] for row in matrix], axis-1) for i in range(len(matrix[0]))] # 對于以下三維矩陣 matrix_3d = [[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]] # 對第一維度求和,結果為 [[4, 6], [12, 14], [20, 22]] dim1_sum = multi_dimensional_sum(matrix_3d, 0) print(dim1_sum) # 對第二維度求和,結果為 [[4, 6], [12, 14]] dim2_sum = multi_dimensional_sum(matrix_3d, 1) print(dim2_sum) # 對第三維度求和,結果為 [3, 11] dim3_sum = multi_dimensional_sum(matrix_3d, 2) print(dim3_sum)
在這段代碼中,定義了一個遞歸函數multi_dimensional_sum。當axis為0時,函數對第一維度求和,返回一個包含每一行和的列表;當axis不為0時,函數對矩陣的每一列遞歸調用multi_dimensional_sum,直到axis為0。
通過以上方法,可以方便地對任意維度的矩陣進行求和操作。
下一篇oracle 怎么下載