因为遇上一个问题需要对矩阵按照行、列求和,这里使用的PC上又无法安装numpy和pandas就只好自己动手写一个简化版的小函数了,其实很简单,就直接上代码了,下面是具体的实现:
#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:矩阵按照行列求和矩阵内容如下:
1,1,0,1,1,0,1,1,1,0,1,1,1
1,1,1,1,1,0,0,1,0,0,1,1,1
1,1,0,1,1,0,1,1,1,0,1,1,0
1,1,0,1,1,0,1,1,1,0,1,1,0
1,1,0,1,1,0,1,1,1,0,1,1,0
1,1,0,1,1,0,1,1,1,0,1,1,0
1,1,0,1,1,0,1,1,1,0,1,1,1
1,1,0,1,1,0,1,1,1,0,1,1,0
1,1,0,1,1,0,1,1,1,0,1,1,1
1,1,0,1,1,1,1,1,1,1,1,1,0
'''def sum_rows(matrix):'''按行求和'''sum_row_list1=[]for i in range(len(matrix)):count=0for j in range(len(matrix[i])):count+=matrix[i][j]sum_row_list1.append(count)sum_row_list2=map(sum,matrix)print '方法一结果为:', sum_row_list1print '方法二结果为:', sum_row_list2def sum_cols(matrix):'''按列求和'''sum_col_list1=[]for i in range(len(matrix[0])):count=0for j in range(len(matrix)):count+=matrix[j][i]sum_col_list1.append(count)sum_col_list2=map(sum,zip(*matrix))print '方法一结果为:', sum_col_list1print '方法二结果为:', sum_col_list2if __name__ == '__main__':matrix=[[1,1,0,1,1,0,1,1,1,0,1,1,1],[1,1,1,1,1,0,0,1,0,0,1,1,1],[1,1,0,1,1,0,1,1,1,0,1,1,0],[1,1,0,1,1,0,1,1,1,0,1,1,0],[1,1,0,1,1,0,1,1,1,0,1,1,0],[1,1,0,1,1,0,1,1,1,0,1,1,0],[1,1,0,1,1,0,1,1,1,0,1,1,1],[1,1,0,1,1,0,1,1,1,0,1,1,0],[1,1,0,1,1,0,1,1,1,0,1,1,1],[1,1,0,1,1,1,1,1,1,1,1,1,0]]print '*****************************按行求和********************************'sum_rows(matrix)print '*****************************按列求和********************************'sum_cols(matrix)
结果如下:
*****************************按行求和********************************
方法一结果为: [10, 9, 9, 9, 9, 9, 10, 9, 10, 11]
方法二结果为: [10, 9, 9, 9, 9, 9, 10, 9, 10, 11]
*****************************按列求和********************************
方法一结果为: [10, 10, 1, 10, 10, 1, 9, 10, 9, 1, 10, 10, 4]
方法二结果为: [10, 10, 1, 10, 10, 1, 9, 10, 9, 1, 10, 10, 4]
[Finished in 0.3s]
做完了感觉听有意思的