假设我们有一个像这样的数组:
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 方法允许以矢量化形式执行此操作。
通过几个步骤变得简单:
a[1, :] *= 2
a[2, :] *= 2
result = np.sum(a, axis=0)
result = const * result