我是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)
为了避免概念混淆,我将更改
mean
变量名:所以您的
C1
数组是2d的;2来自mparam
的大小,50
来自第3个参数的normal
。在看看
^{pr2}$method
版本的docs
:C1.mean(1)
调用此函数,第一个参数是1
;让我们对关键字version执行相同的操作:mean
的函数版本相同,但第一个参数是数组本身:如果方法和函数之间的区别令人困惑,那么您需要回顾一些关于类定义的Python基础知识。在
C.mean()
离开axis=None
,这是它的默认值。np.mean
的文档提供了关于这个axis
参数的更多细节。如果None
(即未提供),则取C1
所有100个值的平均值,得到一个值。对于axis=1
,它取C1
每行的平均值,因此有2个值。在关于
axis
参数在mean
和sum
等函数中的含义的更详细讨论: Sum along axis in numpy array这里涉及两个不同的功能:
第一个类似于
np.mean(C1)
。第二种用法类似于C1.mean()
,并执行相同的操作。但是当你说C1.mean(1)
时,1
被用作axis
参数,它给你一个向量而不是标量结果。在相关问题 更多 >
编程相关推荐