Bir 1D yelpazesine yığınlarla uygulanacak çeşitli istatistik işlevleri destekler binned_statistic
from scipy.stats kullanabilirsiniz. Parçalar elde etmek için, vardiyaların yerlerini değiştirip almamız gerekir (parçaların değiştiği yerler), bunun için np.unique
faydalı olacaktır.
fonksiyonu: bir değerler 1D dizi götüren bir kullanıcı tanımlı fonksiyon biri de özel bir istatistik işlevini kullanabilirsiniz, binned_statistic
ait Dokümanlar
from scipy.stats import binned_statistic as bstat
# Sort data corresponding to argsort of first column
sdata = data[data[:,0].argsort()]
# Unique col-1 elements and positions of breaks (elements are not identical)
unq_x,breaks = np.unique(sdata[:,0],return_index=True)
breaks = np.append(breaks,data.shape[0])
# Use binned statistic to get grouped average and std deviation values
idx_range = np.arange(data.shape[0])
avg_y,_,_ = bstat(x=idx_range, values=sdata[:,1], statistic='mean', bins=breaks)
std_y,_,_ = bstat(x=idx_range, values=sdata[:,1], statistic='std', bins=breaks)
- tüm bu getirirsek, bir uygulama var , ve tek bir sayısal istatistik çıktılar. Bu işlev, her kutudaki değerler üzerinde olarak adlandırılacaktır. Boş kutular işlevi ([]) veya bu bir hata döndürürse NaN ile temsil edilir.
Numune girdi, çıktı -
In [121]: data
Out[121]:
array([[2, 5],
[2, 2],
[1, 5],
[3, 8],
[0, 8],
[6, 7],
[8, 1],
[2, 5],
[6, 8],
[1, 8]])
In [122]: np.column_stack((unq_x,avg_y,std_y))
Out[122]:
array([[ 0. , 8. , 0. ],
[ 1. , 6.5 , 1.5 ],
[ 2. , 4. , 1.41421356],
[ 3. , 8. , 0. ],
[ 6. , 7.5 , 0.5 ],
[ 8. , 1. , 0. ]])
Bir [Minimal, Tam ekleyebilir verir ve Doğrulanabilir örnek] (http://stackoverflow.com/help/mcve) sorunuza mı? – Kasramvd
http://stackoverflow.com/questions/4373631/sum-array-by-number-in-numpy –
'a bir göz atın. Aside: gerçek verilerle çalışıyorsanız, muhtemelen daha kolay bulacaksınız. ['pandas'] 'ı (http://pandas.pydata.org) çıplak numaradan daha fazla kullanın. Eğer 'data' 'ndarray' yerine bir' DataFrame' ise, df.groupby (0) [1] .agg (["mean", "std"]) 'gibi bir şey işe yarayacaktır. – DSM