作为一名学习Python的R程序员,我几次对Python语法感到困惑。许多这些行为对我来说似乎是武断的。这将有助于我理解为什么事情就像它们在Python中一样。我也是OOP的新手,所以这可能是我混淆的原因。
具体来说,这两点在遵循教程时最让我困惑:
要计算数组的均值,请使用np.mean(myarray)
。但是要计算方差,可以使用myarray.var()
(这是方法,对吧?)。这似乎是随意的 - 是否有理由选择以这种方式实施?
绘制直方图包含两个后续命令,plot.hist(values, 50)
后跟plt.show()
。为什么第二次电话需要?第一次通话的“结果”存储在哪里?这是某种OOP魔法吗?
答案 0 :(得分:3)
你可以两种方式使用这些方法:推理是为那些不熟悉OOP的用户提供友好的科学python包,并为习惯使用matlab或R的用户提供熟悉的API。 正如@Mel的评论中所指出的,matplotlib包也共享此功能。
import numpy as np
a = np.array([range(10)])
a.mean(), a.var(), np.mean(a), np.var(a)
(4.5, 8.25, 4.5, 8.25)