11.1 plotting a function
要绘制这样的函数图像,选择给定区间比较密集的点,x在该区域等距选取,y用函数给出,使用plot绘制
import numpy
as np
import matplotlib.pyplot
as plot
import math
x = np.arange(
0,
5,
0.01);
y = ((np.sin(x-
2))**
2)*np.power(math.e, -x*x)
plot.plot(x, y)
plot.title(
'f(x) = sin^2(x-2)*e^(-x^2)')
plot.ylabel(
'y')
plot.xlabel(
'x')
plot.show()
11.2 ploting a function
按照题目要求实现各个变量之后使用plot绘制x-b和 x-b^,
这里b^可以使用最小二乘法求出,而最小二乘法也不需要手动去实现,numpy很方便地提供了一个函数去实现这个功能,这个函数为
numpy.linalg.lstsq(a, b, rcond=-1)它返回一个线性方程的最小二乘解
import numpy
as np
import matplotlib.pyplot
as plot
import math
X = np.random.random_sample((
20,
10)) *
10
b = np.random.random(
10)*
3-
1.5
z = np.random.normal(
0,
1,
size=
20)
y = np.dot(X,b) + z
x = np.arange(
0,
10)
B = np.array(np.linalg.lstsq(X, y,
rcond = -
1)[
0])
plot.xlim(
0,
9)
plot.ylim(-
2.0,
2.0)
plot.xlabel(
"index")
plot.ylabel(
"value")
plot.scatter(x, b,
c =
'r',
marker =
'x',
label=
'True coefficients')
plot.scatter(x, B,
c =
'b',
marker =
'o',
label=
'Estimated coefficients')
plot.hlines(
0,
0,
9,
colors=
'k',
linestyle=
"-")
plot.tight_layout()
plot.show()
11.3 Histogram and density estimation
可以调用hist生成直方图
其中的核可以使用 gaussian_kde()函数直接求得
import numpy
as np
import matplotlib.pyplot
as plot
import math
from scipy
import stats, linalg
z = np.random.normal(
100,
50,
10000)
kernel = stats.gaussian_kde(z)
x = np.linspace(-
100,
300,
1000)
plot.hist(z,
25,
rwidth=
0.5,
color =
'red',
density=
True)
plot.plot(x, kernel.evaluate(x),
c =
'r')
plot.show()