pythonic语法中的mean(POP)?

2021-10-17 17:36:15 发布

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

我有一个赋值,其中包含来自matlab的代码,我想知道Python中该函数的语法。它用来知道二进制数的平均值:

mean(POP)
2条回答
网友
1楼 ·

我想到的几个版本如下:

mean1 = lambda x: 1.0*sum(x)/len(x)

def mean2(x):
    return 1.0*sum(x)/len(x)

def mean3(*args):
    return 1.0*sum(args)/len(args)

这里,mean1mean2的作用完全相同,但是第一个函数被定义为lambda表达式。它们都以列表为参数,使用sum函数计算所有元素的和,使用len函数知道列表中有多少元素。为了安全起见,我用1.0相乘,这样除法总是产生一个浮点数。这在python3中是不必要的,因为/操作总是产生一个浮点数,而不是整数。你知道吗

所以这两个版本可以使用如下:

mean1([1,2,3,4])
mean2([1,2,3,4])

会产生结果2.5。你知道吗

在第三个版本中,不需要指定列表,只需对函数使用多个参数即可:

mean3(1,2,3,4)

它将再次返回2.5。你知道吗

网友
2楼 ·

如果需要将matlab代码移植到python,可以考虑使用包numpyscipymatplotlib,它们之间包含了matlab的大部分功能。碰巧,numpy包含一个函数numpy.mean,该函数计算numpy数组或列表的平均值。示例:

import numpy
print(numpy.mean([1, 2, 3, 4, 5]))

相关问题