numpy mean函数的参数'a'是如何工作的?

2024-04-25 17:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和numpy的新手,我很难理解mean函数的参数。在

我这样定义我的数据。在

mean = [2, 0.5]
cov = [[0.8, 0.1],[0.1, 0.5]]
np.random.seed(17)
C1 = np.random.multivariate_normal(mean, cov,50).T

现在我想近似平均值。我是这样做的:

^{2}$

我被这个解决方案搞糊涂了,因为我不能把我的脑袋绕在参数的概念上。在

文件numpy.平均值国家:

a : array_like Array containing numbers whose mean is desired. If a is not an array, a conversion is attempted.

对我来说,这个函数的正常调用方式是 numpy.mean(C1)导致

(1.1310301021862881)

类似地,使用不带参数的C1也会导致一个值。我不知道为什么?在

 C1.mean()    
 //returns array(1.1310301021862881)

Tags: 数据函数numpy参数定义isnprandom
2条回答

为了避免概念混淆,我将更改mean变量名:

In [794]: mparam = [2, 0.5]
In [795]: cov = [[0.8, 0.1],[0.1, 0.5]]
In [796]: np.random.seed(17)
In [797]: C1 = np.random.multivariate_normal(mparam, cov,50).T
In [798]: C1.shape
Out[798]: (2, 50)

所以您的C1数组是2d的;2来自mparam的大小,50来自第3个参数的normal。在

看看method版本的docs

^{pr2}$

C1.mean(1)调用此函数,第一个参数是1;让我们对关键字version执行相同的操作:

In [800]: C1.mean(axis=1)
Out[800]: array([ 1.81203223,  0.45002797])

mean的函数版本相同,但第一个参数是数组本身:

In [801]: np.mean(C1, axis=1)
Out[801]: array([ 1.81203223,  0.45002797])

如果方法和函数之间的区别令人困惑,那么您需要回顾一些关于类定义的Python基础知识。在

C.mean()离开axis=None,这是它的默认值。np.mean的文档提供了关于这个axis参数的更多细节。如果None(即未提供),则取C1所有100个值的平均值,得到一个值。对于axis=1,它取C1每行的平均值,因此有2个值。在

关于axis参数在meansum等函数中的含义的更详细讨论: Sum along axis in numpy array

这里涉及两个不同的功能:

  1. https://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html
  2. https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.mean.html

第一个类似于np.mean(C1)。第二种用法类似于C1.mean(),并执行相同的操作。但是当你说C1.mean(1)时,1被用作axis参数,它给你一个向量而不是标量结果。在

相关问题 更多 >

    热门问题