我有一个数组,我想在迭代它时对特定元素求和。我很难找到一种方法来循环。阵列形状为(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的“长度”增加了一个。
无论如何我可以使用循环来完成这项任务吗?
你可能只想要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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。