python的爱心曲线公式_六行python代码的爱心曲线详解

前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧。实际上,当时有效偏颇了,忽略了问题的本质,解决数据分析和可视化问题,其实也是Python的拿手好戏。

例如,画出指定区间的一个多项式函数:

Python 代码如下:

import numpy as np

import matplotlib.pyplot as plt

X = np.linspace(-4, 4, 1024)

Y = .25 * (X + 4.) * (X + 1.) * (X - 2.)

plt.title('$f(x)=frac{1}{4}(x+4)(x+1)(x-2)$')

plt.plot(X, Y, c = 'g')

plt.show()

通过numpy的linspace方法来确定横坐标x的取值范围,列出方程,然后调用matplotlib的pyplot画出函数曲线即可。numpy 是一个用python实现的科学计算包,包括一个强大的N维数组对象Array和成熟的函数库,有用于整合C/C++和Fortran代码的工具包,提供了实用的线性代数、傅里叶变换和随机数生成函数等工具,可以理解成Matlab。

记得中学的时候,我问老师三角函数到底有啥用?(无知者无畏)老师反问我,“如果给了你一块洋铁,怎样才能剪出煤炉烟囱的拐弯呢?”,现在仍然记得老师的这个例子,哪些看似抽象的数学公式,实际上是自己不知道她们的应用场景而已。

Python代码如下:

import numpy as np

import matplotlib.pyplot as plt

X = np.linspace(0, 2 * np.pi, 100)

YSinValues = np.sin(X)

YCosValues = np.cos(X)

plt.plot(X, YSinValues)

plt.plot(X, YCosValues)

plt.show()

Matplotlib 是一个 Python 的 2D绘图库,甚至可以生成出版质量级别的图形。

对于那些正态分布而言,Python 画起来也就相当简单了:

import numpy as np

import matplotlib.pyplot as plt

def pdf(X, mu, sigma):

a = 1. / (sigma * np.sqrt(2. * np.pi))

b = -1. / (2. * sigma ** 2)

return a * np.exp(b * (X - mu) ** 2)

X = np.linspace(-6, 6, 1000)

for i in range(3):

samples = np.random.standard_normal(10)

mu, sigma = np.mean(samples), np.std(samples)

plt.plot(X, pdf(X, mu, sigma), color = '.66')

plt.plot(X, pdf(X, 0., 1.), color = 'b')

plt.show()

为了不显得单调,这里多画了几条曲线。只要算出方差和均值,从excel中读出哪些数值就可以拟合正态分布了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值