2024-04-25 05:08:55 发布
网友
我有一个赋值,其中包含来自matlab的代码,我想知道Python中该函数的语法。它用来知道二进制数的平均值:
matlab
mean(POP)
我想到的几个版本如下:
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)
这里,mean1和mean2的作用完全相同,但是第一个函数被定义为lambda表达式。它们都以列表为参数,使用sum函数计算所有元素的和,使用len函数知道列表中有多少元素。为了安全起见,我用1.0相乘,这样除法总是产生一个浮点数。这在python3中是不必要的,因为/操作总是产生一个浮点数,而不是整数。你知道吗
mean1
mean2
sum
len
/
所以这两个版本可以使用如下:
mean1([1,2,3,4]) mean2([1,2,3,4])
会产生结果2.5。你知道吗
2.5
在第三个版本中,不需要指定列表,只需对函数使用多个参数即可:
mean3(1,2,3,4)
它将再次返回2.5。你知道吗
如果需要将matlab代码移植到python,可以考虑使用包numpy、scipy和matplotlib,它们之间包含了matlab的大部分功能。碰巧,numpy包含一个函数numpy.mean,该函数计算numpy数组或列表的平均值。示例:
numpy.mean
import numpy print(numpy.mean([1, 2, 3, 4, 5]))
我想到的几个版本如下:
这里,
mean1
和mean2
的作用完全相同,但是第一个函数被定义为lambda表达式。它们都以列表为参数,使用sum
函数计算所有元素的和,使用len
函数知道列表中有多少元素。为了安全起见,我用1.0相乘,这样除法总是产生一个浮点数。这在python3中是不必要的,因为/
操作总是产生一个浮点数,而不是整数。你知道吗所以这两个版本可以使用如下:
会产生结果
2.5
。你知道吗在第三个版本中,不需要指定列表,只需对函数使用多个参数即可:
它将再次返回
2.5
。你知道吗如果需要将matlab代码移植到python,可以考虑使用包numpy、scipy和matplotlib,它们之间包含了matlab的大部分功能。碰巧,numpy包含一个函数
numpy.mean
,该函数计算numpy数组或列表的平均值。示例:相关问题 更多 >
编程相关推荐