numpy:通过特殊逻辑对列值求和

问题描述 投票:0回答:1

假设我们有一个像这样的数组:

a = np.array([
    [k11, k12, k13, k14, k15, k16, k17, k18],
    [k21, k22, k23, k24, k25, k26, k27, k28],
    [k31, k32, k33, k34, k35, k36, k37, k38],
    [k41, k42, k43, k44, k45, k46, k47, k48]
])

const = C

我需要像这样从这个数组创建一个向量(runge kutta 4):

result = np.array([
    const * (k11 + 2*k21 + 2*k31 + k41),
    const * (k12 + 2*k22 + 2*k32 + k42),
    const * (k13 + 2*k23 + 2*k33 + k43),
        ....
    const * (k18 + 2*k28 + 2*k38 + k48)
])

我能够循环执行此操作,但我很确定 numpy 方法允许以矢量化形式执行此操作。

python-3.x numpy
1个回答
0
投票

通过几个步骤变得简单:

a[1, :] *= 2
a[2, :] *= 2
result = np.sum(a, axis=0)
result = const * result
© www.soinside.com 2019 - 2024. All rights reserved.