假设我有一个数组A [i,j],我想通过做类似的事来计算新的数量B [i,j]:
cb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(cb.isChecked()){
list.add(task.getTaskId());
i++;
}
}
});
我可以使用什么numpy功能将其转换为纯数组操作?
我在想np.cumprod,但目前还不清楚如何将系数纳入计算。
A.shape将是(n + 1,j)。
答案 0 :(得分:2)
定义A_left = A[:-2, :]
,A_middle = A[1:-1, :]
和A_right = A[2:, :]
然后B = a*A_left + b*A_middle + c*A_right
答案 1 :(得分:1)
如果你不介意一些信号处理,你可以有一个通用的解决方案(通用的,你可以在a
,b
和c
旁边分配更多的元素。使用signal.convolve2d
从A
扩展元素。
这类似于other solution
,其中与这种情况相关的卷积理论以更详细的方式处理。实现看起来像这样 -
from scipy import signal
B = np.zeros_like(A)
kernel = np.array([a,b,c])[::-1,None]
B[1:-1] = signal.convolve2d(A, kernel, boundary='symm', mode='valid')