簡體   English   中英

使用numpy計算平均值?

[英]Using numpy to calculate mean?

我有一個2D數組,看起來像這樣:

array = [[23 ,89, 4, 3, 0],[12, 73 ,3, 5,1],[7, 9 ,12, 11 ,0]]

對於所有行,最后一列始終為0或1。 我的目標是為第0列計算兩個均值,其中一個均值將是最后一列的值為0,其中一個均值將是最后一列的值為1。

例如,對於上面給定的樣本數組:平均值1:15(對於最后一列為0的所有行,對於0列的平均值)意味着2:12(對於最后一列為1的所有行,均值為0列)

我試過這個(火車是我的輸入數組的名字):

 mean_c1_0=np.mean(train[:: , 0])
 variance_c1_0=np.var(train[:: , 0])

這讓我得到了第0列ll值的均值和方差。

我總是可以引入一個for循環和幾個if條件來繼續檢查最后一列,然后在第0列添加相應的值,但我正在尋找一種有效的方法。 由於我是Python的新手,我希望是否有一個可以完成這項工作的numpy函數。

你能指點我任何這樣的文件嗎?

你可以使用numpy的數組過濾。 (請參閱如何通過第i個字段的值對numpy數組進行切片? ),然后就這樣得到均值。 不需要循環。

import numpy
x = numpy.array([[23, 89, 4, 3, 0],[12, 73, 3, 5, 1],[7, 9, 12, 11, 0]])
numpy.mean(x[x[:,-1]==1][::,0])
numpy.mean(x[x[:,-1]==0][::,0])

你可以試試這個。

mean_of_zeros = np.mean(numpy_array[np.where(numpy_array[:,-1] == 0)])

mean_of_ones = np.mean(numpy_array[np.where(numpy_array[:,-1] == 1)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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