1
我想弄清楚如何對數組的每兩行進行求和。 EG轉換到B在這個例子:Numpy:sum sum of rows
a=array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
b=array([[ 4, 6, 8, 10],
[20, 22, 24, 26]])
當前的代碼看起來是這樣的:
b=[]
for num in range(len(a)/2):
b.append(a[num*2]+a[num*2+1])
當然,必須有一個更快的方法。感謝您的時間。
找到答案爲:
b=a[::2,:]+a[1::2,:]
事實上有助於我對如何跳過最初的兩行的第二個問題擴大。
>>> a=np.arange(24).reshape(6,-1)
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
>>> b=np.vstack((a[:2],a[2::2,:]+a[3::2,:]))
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[20, 22, 24, 26],
[36, 38, 40, 42]])
非常感謝您的幫助。
你的解決方案是更爲直接的比我:) – unutbu
@unutbu - 我注意到:) – mgilson
啊,這是偉大的,易於擴展! – Daniel