【发布时间】:2021-03-17 12:51:35
【问题描述】:
假设我有以下 numpy 数组。
A = [1,2,3,4,5,6]
问题有没有一种快速的方法将 A 中的每个第 n 个元素相乘或相加以产生以下数组?
B = [3*1, 2*4, 3*5, 4*6]
C = [3+1, 2+4, 3+5, 4+6]
我可以通过滚动 A 然后将其与原始 A 相加或相乘来完成此操作。
T = np.roll(A,-2)
B = (A*T)[0:4]
C = (A*T)[0:4]
只是想知道是否有更 Pythonic/更有效的方法来完成此任务?我还查看了 np.add.reduceat 和 np.multiply.reduceat 但它们似乎不允许跳过值。
【问题讨论】: