我有一个3 * 3的值数组
array([[20, 10, 30],
[35, 45, 25],
[15, 25, 35]])
我想创建一个函数,当我传递数字参数时,它应该将所有小于行号的元素的行和列元素相加。
def sum_con (ar,a):
y=a-1
z=ar[0][0]+ar[0][1]+ar[1][0]+ar[1][1]
return z
sum_con(array,2)
>>110
但是您可以看到此代码不是动态的,因为它不可伸缩。
有人可以提供用于对n型数组执行相同功能的代码吗?
答案 0 :(得分:4)
对于“ other”,只需像往常一样进行加法并相应地减去/加法即可:
def sum_con(a, n):
return a.sum() - a[n].sum() - a[:,n].sum() + a[n,n]
这将使求和时第n行和第“列”消失。
对于“小于”,它甚至更容易:
def sum_con_2(a, n):
return a[:n,:n].sum()