【问题标题】:How to simplify my list of numbers?如何简化我的数字列表?
【发布时间】:2018-02-09 08:29:50
【问题描述】:

我这里有一个 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'

【问题讨论】:

  • 请以文本形式而不是图像形式发布堆栈跟踪。
  • 对于 Q1:你尝试谷歌搜索 "numpy array from list?"
  • 所以我在这里看到的是,我可以使用 np.array() 将列表转换为数组,这是否意味着我所要做的就是 np.array(exp_cdf1) ?

标签: python arrays numpy statistics jupyter-notebook


【解决方案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 是一个与arr 长度相同的numpy 数组(或实际上是任何可迭代的),它仍然可以工作。

【讨论】:

  • 这是否意味着 exp_cdf1 已经是数组的形式,因此我可以只做 exp_cdf1.mean()?
  • 在我这里的教科书中,它说我可以写 import numpy 和/或 import numpy as np 那会以任何形式或形式改变你刚刚写的更新答案吗?
  • @cavell 如果你写import numpy,你必须用numpy.替换所有出现的np.。所以不是np.arange,而是numpy.arangenumpy.exp而不是np.exp等等(如果你有更多的代码)。这只是给模块一个不同的(通常更短的)名称的一种方式。
  • @cavell 如果您还有其他问题,可以随时ask a new question。 cmets 中的代码格式几乎不可读。
  • @cavell 好吧,您的“更新代码”基本上是您的旧代码,而不是我发布的代码。它不起作用,因为您的exp_cdf1float 而不是floats 的np.arrayfloat 没有 mean 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多