gpt4 book ai didi

python 对二维数组求和以获得一维数组

转载 作者:行者123 更新时间:2023-11-30 23:20:20 24 4
gpt4 key购买 nike

假设我有一个二维数组 (x,y) 和函数 z=F(x,y) 的值

   x = y = array([ 1.,  2.,  3.,  4.,  5.])

z= array([[ 1., 2., 3., 4., 5.],
[ 2., 4., 6., 8., 10.],
[ 3., 6., 9., 12., 15.],
[ 4., 8., 12., 16., 20.],
[ 5., 10., 15., 20., 25.]])

现在我想找到的是积分 $P(w)=\int F(x,y)\delta(x-y=w) dx dy $为此,我通过 w = x-y 构造 w 矩阵这给了我类似的东西

   w= array([[ 0.,  1.,  2.,  3.,  4.],
[-1., 0., 1., 2., 3.],
[-2., -1., 0., 1., 2.],
[-3., -2., -1., 0., 1.],
[-4., -3., -2., -1., 0.]])

现在我必须将对应于 w 的所有 z 值相加,假设 w = 3 我应该得到 4+10=14。

问题是完成最后一部分的最佳方法是什么?

附注。这是一个示例,数组通常不相等,并且不具有本示例中的对称性。我想,迭代将是一个糟糕的选择,因为这些数组非常大。

最佳答案

z[w == 3].sum()

w == 3 构建一个 bool 数组,表示 w 的哪些位置有 3。z[w == 3] 给出一个与这些位置相对应的 z 元素数组,然后 sum() 将它们相加。您将在 NumPy tutorial 中学到很多此类内容。 ,您将在 NumPy reference 中了解更多信息.

关于python 对二维数组求和以获得一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com