![](/img/trans.png)
[英]How to efficiently multiply every element in a 2-dimensional array by a 1-dimensional array in Numpy?
[英]How to efficiently add or multiply every Nth element of a numpy array?
假設我有以下 numpy 數組。
A = [1,2,3,4,5,6]
問題有沒有一種快速的方法可以將 A 中的每個第 n 個元素相乘或相加以產生以下 arrays?
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 但它們似乎不允許跳過值。
您可以通過以下方式執行此操作:
A = np.array([1, 2, 3, 4, 5, 6])
k = 2
B = A[:-k]
C = A[k:]
print(B * C)
print(B + C)
Output
[ 3 8 15 24]
[ 4 6 8 10]
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.