为什么Python没有内置mean()函数?

3
虽然可以独立调用min()max()函数,但是函数mean()必须依赖于其他导入的包,例如Numpy,即np.mean()。如果最小和最大概念对于一个范围/区间来说是自然的话,那么该范围/区间的中间点(也就是平均数mean)是否也应该被认为是自然的呢?这种不一致性的根本原因是什么?请注意,这不是基于观点的问题,我真的想知道将mean()函数从基础包中排除的原因。

5
如果你想知道为什么mean不是Python的内置函数,那么你可能应该向Python开发人员提问。 - cs95
@coldspeed,这正是我想问的,但我不知道用“内置”这个术语来澄清。如果没有内置的mean()函数,Python语法会有些不一致! - Nemo
2
@coldspeed 建议 OP “问问 Python 开发人员” 不太可能让他们更好地理解。如果你不是想拿他们开玩笑,那么你可能需要更仔细地表达你的意思。 - Robert Dodier
@RobertDodier 这应该是显而易见的...但我试图表达的是,这并不适合在这里提问,因为大多数都是基于个人观点的(至少是“为什么”部分)。 - cs95
1
@coldspeed 对于提问者来说可能不太明显,我猜测。如果您认为这个问题过于涉及观点,那么最好直接说出来。 - Robert Dodier
感谢@RobertDodier指出@coldspeed的真实意图。对于像我这样缺乏经验的人,请直截了当,否则我会错过您的潜在信息。我不明白为什么问“为什么”会等同于基于观点的问题?我确实想知道为什么/mean()未被包含在基础包中的根本原因。 - Nemo
2个回答

8

这段文本与IT技术有关,它说需要从 statistics 导入 mean 模块。

import statistics

numbers = [ 1, 2, 3, 4 ]
print( "mean is ", statistics.mean( numbers ) )

这将输出:

mean is  2.5

Python有一套"内置函数",可以直接调用。其中min()max()属于此类函数。其他函数需要显式导入后才能使用,例如statistics.mean()

如果你觉得这带来了一个问题:"为什么要有库函数?" - Python有数百个库函数。将它们包含在每个程序的运行时中是低效的。我已经编写Python程序多年,但在回答这个问题之前,我从未使用过statistics.mean()


谢谢,Kingsley!但是我不需要导入 statistics 来查找 min() 和 max() 的文档字符串! - Nemo
感谢@RobertDodier的建议。我的问题是为什么mean()需要依赖其他包(如Scipy、Numpy等)才能工作(即np.mean),而min()max()可以直接调用? - Nemo
1
@Jason - 我添加了一些关于库函数的注释。也许这会有所帮助。 - Kingsley
1
假设你有一个屏幕库和一个纸质绘图仪库。draw()函数会针对不同的库执行不同的操作。 - Kingsley
1
@Jason 一些函数为什么是内置的,而另一些则在库中,这是Python历史的结果。最初,Python并不是一个很好的数据处理语言,后来这变得很重要。在Python开发的早期就做出了一些选择,使一些看起来很重要的东西成为内置的;mean不是其中之一。每种语言都是如此——在语言设计中做出选择,强调当时看起来重要的内容。如果你研究各种语言的历史,你会看到不同的人认为什么是重要的。 - Robert Dodier
显示剩余3条评论

1

@Kingsley有一个很好的观点,但如果做它的逻辑会更容易一些:

numbers = [ 1, 2, 3, 4 ]
print("The mean is", sum(numbers)/len(numbers))

它复制:
The mean is 2.5

但这会违背Python简洁明了的精神,不是吗?也就是说,我们必须使用sum(numbers)/len(numbers)来代替mean(numbers) - Nemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接