python - SciPy 而不是 GNU Octave

标签 python numpy scipy octave

对于我的实验室实验,我编写了小程序来帮助进行数据分析。我通常只需要基本计算、均值、标准差、任意加权函数拟合以及带有误差线和拟合函数的绘图。

有了 GNU Octave,我可以做到这一点。我开始更多地阅读它的语言,我开始不喜欢它的前后矛盾,我不得不学习另一种语言。

所以我正在考虑将我使用了一段时间的 Python 与 SciPy 和 NumPy 结合使用。我可以使用 Python 轻松地完成这些事情吗?还是让通用语言 Python 来完成我打算做的事情需要更多的开销?

最佳答案

是的,Python 生态系统使其成为日常数据分析任务的可行平台,尤其是使用 IPython 接口(interface)(但我将在这里坚持使用标准接口(interface)。)“[不必] 学习另一种语言”的论点是一个强大的,恕我直言,这也是我倾向于使用 Python 来处理这些东西的原因之一。

>>> import numpy as np
>>> import scipy.optimize

“我通常只需要基本的计算”

>>> x = np.linspace(0, 10, 50)
>>> y = 3*x**2+5+2*np.sin(x)

“均值,标准差”

>>> y.mean()
106.3687338223809
>>> y.std()
91.395548605660522

“任意加权函数拟合”

>>> def func(x, a, b, c):
...     return a*x**2+b+c*np.sin(x)
... 
>>> ynoisy = y + np.random.normal(0, 0.2, size=len(x))
>>> popt, pcov = scipy.optimize.curve_fit(func, x, ynoisy)
>>> popt
array([ 3.00015527,  4.99421236,  2.03380468])

“带有误差条和拟合函数的图”

xerr = 0.5
yerr = abs(np.random.normal(0.3, 10.0))
fitted_data = func(x, *popt)

# using the simplified, non-object-oriented interface here
# handy for quick plots

from pylab import *
errorbar(x, ynoisy, xerr=xerr, yerr=yerr, c="green", label="actual data")
plot(x, fitted_data, c="blue", label="fitted function")
xlim(0, 10)
ylim(0, 350)
legend()
xlabel("time since post")
ylabel("coolness of Python")
savefig("cool.png")

sample pic

关于python - SciPy 而不是 GNU Octave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343271/

相关文章:

python - kNN 中一个点的最远点

python - pandas datetimeindex Between_time函数(如何获取not_ Between_time)

python - Python 中的二阶导数 - scipy/numpy/pandas

python - 为人们提供一次性 url 以下载文件的 Django/Python 解决方案是什么?

python - 使用 Python 将列表字典转换为 CSV 文件

python - 使用 SMTPLib Python 时获取未经授权的发件人地址

python - 没有 "isin"属性的 numpy

python - 计算由长度不等的二维索引列表给出的 DataFrame 行组的平均值

python - 打印完整的 coo_matrix

python - 形态侵 eclipse ——Scipy ndimage 和 Scikit image 的区别