2017-09-03 75 views
0

我想要计算每个数组内的元素的np.sum。我试图用np.sum(outcome_list[0] == 'H'来代替np.sum(outcome_list[j] == 'H',以便每个“列表”都有自己的数据集,但它不喜欢它。更大的问题是,我将如何构建一个具有给定基本列表的数组以及要在该列表的每个元素中执行的操作?列表中的元素的总和

enter image description here

编辑:

的throw_a_coin定义

def throw_a_coin(N): 
    return np.random.choice(['H','T'], size=N) 
N =40 

试验(如上图所示)是组可

for i in trials: 
    throws = throw_a_coin(i) 
    outcome_list.append(throws) 

for j in outcome_list: 
    print("Number of Heads:", np.sum(outcome_list[0] == 'H')) 
    print (j) 
0至被作用

编辑2:

问题,如下所示的解决,但是我得到超过13号的“概率” - 看来,该系统通过试验运行多于一次。

def throw_a_coin(N): 
    return np.random.choice(['H','T'], size=N) 

trials = [10, 30, 50, 70, 100, 130, 170, 200, 500, 1000, 2000, 5000, 10000] 

for i in trials: 
    throws = throw_a_coin(i) 
    outcome_list.append(throws) 

probabilities = [] 

for j in outcome_list: 
    print("Number of Heads:", np.sum(j == 'H')) 
    print("Number of Throws:", len(j)) 
    print("p = Number of Heads/Total Throws:", (np.sum(j == 'H'))/len(j)) 
    probabilities.append((np.sum(j =='H'))/len(j)) 
    print (j) 
    print("\n") 

print(probabilities) 
+0

您是否想要统计头数? – Rishav

+2

你能否附上代码而不是代码的照片? –

+0

@Rishav - 是的,计算每次试验的头数 – aiwan

回答

1

你快到了!你只需要与

print("Number of Heads:", np.sum(j == 'H')) 

更换

print("Number of Heads:", np.sum(outcome_list[0] == 'H')) 

下面是完整的答案:

trials = [10, 30, 50, 70, 100, 130, 170, 200, 500, 1000, 2000, 5000, 10000] 

N =40 
def throw_a_coin(N): 
    return np.random.choice(['H','T'], size=N) 

outcome_list = [] 
for i in trials: 
    throws = throw_a_coin(i) 
    outcome_list.append(throws) 

for j in outcome_list: 
    print("Number of Heads:", np.sum(j == 'H')) 
    print (j) 
+0

我还在问题中添加了“编辑2” - 它似乎正在贯穿“试验”不止一次? – aiwan

0

如果output_list将是一个numpy的阵列,如果在矩阵中的每一行代表每次试验中,可以以高效的方式获得的总和如下:

head_sum = output_list.sum(axis=1) 
0

我会用一个列表理解后跟一个len电话。

for j in outcome_list: 
    print("Number of Heads:", len([x for x in j if x == 'H']) 
    print (j) 

免责声明:我有NumPy的零距离体验。然而,这将是一般的Pythonic方法,而不诉诸于count

+0

这是相当不错的,但是我会推荐'sum(1,如果x =='H',则为1)通过使用生成器理解,我们避免实际构建'H'列表。这是一个很小的差异,但我只是想我会提到它。 –