我有一個陣列:
arr = np.array([1,2,3,4,5,6,7,8]
我想定義一個函式來計算這個陣列元素的均值差,但在給定的長度。
例如:
diff_avg(arr, size=2)
預期結果:
[-2, -2]
因為:
((1 2)/2) - ((3 4)/2)) = -2 -> first 4 elements because size is 2, so 2 groups of 2 elements
((5 6)/2) - ((7 8)/2)) = -2 -> last 4 elements
if size=3
然后:
output: [-3]
因為:
((1 2 3)/3) - ((4 5 6)/3)) = -3 -> first 6 elements
到目前為止我做了什么:
def diff_avg(first_group, second_group, size):
results =[]
x = np.mean(first_group) - np.mean(second_group)
results.append(x)
return results
我不知道如何添加大小引數
我可以使用第一個size元素,arr[:size]但如何獲取下一個size元素。
有沒有人可以幫助我?
uj5u.com熱心網友回復:
首先,截斷陣列以洗掉多余的專案:
size = 3
sized_array = arr[:arr.size // (size * 2) * (size * 2)]
# array([1, 2, 3, 4, 5, 6])
接下來,重塑大小的陣列并獲得均值:
means = sized_array.reshape([2, size, -1]).mean(axis=1)
# array([[2.], [5.]])
最后,看看差異:
means[0] - means[1]
#array([-3.])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334200.html
