如何简化我的号码列表?

时间:2018-02-09 08:29:50

标签: python arrays numpy statistics jupyter-notebook

我这里有一个x值列表及其相应的累积密度值和特定的lambda。我需要做的是找到exc_cdf1值的平均值......

如何将这些exp_cdf值放入数组中,以便我可以使用array.mean()的函数?

我的编码方式是为了显示exp_cdf1解决此类问题的好方法吗? (我需要打印这些值,所以我可以在一定程度上进行健全性检查。)如果我们继续我现在正在做的方式,我有循环显示它的所有值,我怎么能找到意思是?

最后,我想找到这些exp_cdf1值的平均值,但是要以高效和直观的方式,我希望我能清楚自己。

这是我到目前为止的代码:

import numpy as np

arr = np.arange(50)/50
for i in range(0,50):
    lambda1 = 0.5  
    exp_cdf1 = 1 - lambda1 * math.exp(-1 * lambda1 * arr[i])
    print(' lambda1 = ' , lambda1, ' ' , i , " = " , arr[i], 'exp_cdf1 = ' , exp_cdf1)

this is what displays when the code is ran:

编辑:

在更新了我知道我只能简单地exp_cdf1.mean()

的代码之后

然后我有了这段代码:

import numpy as np

arr = np.arange(50)/50

for i in range(0,50):
    lambda1 = 0.5

exp_cdf1 = 1 - lambda1 * math.exp(-1 * lambda1 * arr[i])

print('lambda1 = ' , lambda1, i , " = " , arr[i], 'exp_cdf1 = ' , exp_cdf1, ' mean = ' , exp_cdf1.mean())

我收到错误

AttributeError: 'float' object has no attribute 'mean'

1 个答案:

答案 0 :(得分:1)

numpy允许您对整个数组进行操作。它还重新定义了math模块中允许的功能(包括exp)。所以你可以写:

import numpy as np

arr = np.arange(50) / 50
lambda1 = 0.5
exp_cdf1 = 1 - lambda1 * np.exp(-lambda1 * arr)
print(exp_cdf1.mean())
# 0.604560034105

请注意,lambda的值也永远不会改变。如果确实如此,如果lambda1是与numpy长度相同的arr数组(或实际上任何可迭代数组),它仍然有用。