簡體   English   中英

如何有效地添加或相乘 numpy 數組的每個第 N 個元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM