Python 对矩阵进行迭代,对一些行求和,然后将结果添加到另一个数组中
你好,我有下面的矩阵Python 对矩阵进行迭代,对一些行求和,然后将结果添加到另一个数组中,python,matrix,numpy,matplotlib,Python,Matrix,Numpy,Matplotlib,你好,我有下面的矩阵 [[ 47 43 51 81 54 81 52 54 31 46] [ 35 21 30 16 37 11 35 30 39 37] [ 8 17 11 2 5 4 11 9 17 10] [ 5 9 4 0 1 1 0 3 9 3] [ 2 7 2 0 0 0 0 1 2 1] [215 149 299 199
[[ 47 43 51 81 54 81 52 54 31 46]
[ 35 21 30 16 37 11 35 30 39 37]
[ 8 17 11 2 5 4 11 9 17 10]
[ 5 9 4 0 1 1 0 3 9 3]
[ 2 7 2 0 0 0 0 1 2 1]
[215 149 299 199 159 325 179 249 249 199]
[ 27 49 24 4 21 8 35 15 45 25]
[100 100 100 100 100 100 100 100 100 100]]
我只需要在矩阵上迭代求和第0,1,2,3,4行中的所有元素
我需要
row_0_sum = 47+43+51+81....46
此外,我需要将每行总和存储在这样的数组中
[row0_sum, row1_sum, row2_sum, row3_sum, row4_sum]
到目前为止,我已经尝试过此代码,但它没有起到作用:
mu = np.zeros(shape=(1,6))
#get an average
def standardize_ratings(matrix):
sum = 0
for i, eli in enumerate(matrix):
for j, elj in enumerate(eli):
if(i<5):
sum = sum + matrix[i][j]
if(j==elj.len -1):
mu[i] = sum
sum = 0
print "mu[i]="
print mu[i]
mu=np.zero(形状=(1,6))
#平均
def标准化U评级(矩阵):
总和=0
对于i,枚举中的eli(矩阵):
对于j,枚举中的elj(eli):
如果(i生成您的数据,matrix
,一个numpy.ndarray
对象,而不是列表列表,然后只执行matrix.sum(axis=1)
要从结果中获取前五行,只需执行以下操作:
>>> row_sums = matrix.sum(axis=1)
>>> rows_0_through_4_sums = row_sums[:5]
>>> print rows_0_through_4_sums
[540 291 94 35 15]
或者,您也可以选择仅子选择要开始的行,并仅对其应用求和:
>>> rows_0_through_4 = matrix[:5,:]
>>> print rows_0_through_4.sum(axis=1)
[540 291 94 35 15]
以下是一些有用的链接:
,如果您熟悉Matlab/Octave中的这些内容
它看起来已经是numpy了。列表列表中会打印逗号是的,这可能是真的。但我想讨论一下以防万一。此外,您可能想向用户展示如何从列表中切分前5行,因为看起来这些是OP想要求和的唯一行……如果j==eli.len,我想您的意思是-1:
>>> rows_0_through_4 = matrix[:5,:]
>>> print rows_0_through_4.sum(axis=1)
[540 291 94 35 15]