开发者社区> 问答> 正文

迭代数组并对元素进行计算

我有一个数组,我想在迭代它时对特定元素求和。我很难找到一种方法来循环。阵列形状为(25,25)

array
[ 92843, 86851, 91950, 98232, 83329, 94591, 88962, 97020,

    107113,  98452, 103242, 106442, 123032, 119063, 112971, 114715,
    108654, 114856, 109872, 124583, 120518, 112815, 120780, 127831,
    147174],
   [132633, 124073, 131357, 140331, 119041, 135131, 127089, 138601,
    153019, 140647, 147489, 152061, 175761, 170090, 161388, 163879,
    155221, 164080, 156960, 177976, 172169, 161165, 172544, 182617,
    210249],
   [159159, 148887, 157629, 168397, 142849, 162157, 152507, 166321,
    183623, 168776, 176986, 182473, 210913, 204108, 193665, 196655,
    186265, 196896, 188352, 213571, 206602, 193398, 207052, 219140,
    252298]

我想为每次迭代打印出如下所示的结果

print(array23+array23) # 159159 + 148887 = 308046
print(array22+array22+array22) #132633 + 124073 + 131357 = 388063
print(array21+array21+array21+array21) # 92843 + 86851 + 91950 + 98232 = 369876
arrayi正如您在每次迭代中看到的那样,将每个元素呈现为i - 1,并且j的“长度”增加了一个。
无论如何我可以使用循环来完成这项任务吗?

展开
收起
一码平川MACHEL 2019-01-23 13:51:18 1921 0
1 条回答
写回答
取消 提交回答
  • 你可能只想要np.tril,然后是a np.sum(_, axis=0)。这将给出矩阵的下三角形的总和。如果您需要,可轻松更改为上三角形。

    print(np.sum(np.tril(array), axis=0))


    试试这个:

    for i, sub in enumerate(reversed(array)):

    print(sum(sub[:i]))

    例如,如果

    array = [[ 1, 2, 3, 4, 5],

         [ 6,  7,  8,  9, 10],
         [11, 12, 13, 14, 15],
         [16, 17, 18, 19, 20],
         [21, 22, 23, 24, 25]]

    输出将是

    0 # last row, no elements summed
    16 # 16 = 16
    23 # 11 + 12 = 23
    21 # 6 + 7 + 8 = 21
    10 # 1 + 2 + 3 + 4 = 10

    2019-07-17 23:26:36
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载