我是靠谱客的博主 矮小冰淇淋,最近开发中收集的这篇文章主要介绍Python Matplotlib习题Exercise 11.1: Plotting a functionExercise 11.2: DataExercise 11.3: Histogram and density estimation,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Exercise 11.1: Plotting a function

Plot the function f(x)=sin2(x2)ex2 f ( x ) = s i n 2 ( x − 2 ) e − x 2 over the interval [0, 2]. Add proper axis labels, a title, etc.

代码:

import numpy as np
import matplotlib.pyplot as plt
import math

x = np.linspace(0, 2, 1000) 
y = [math.sin(i-2)**2 * math.exp(-i**2) for i in x]  
plt.plot(x, y)  
plt.xlabel('x')
plt.ylabel('y')
plt.title('y = $sin^2(x-2){e^{-x^2}}$')
plt.show()

运行效果:
这里写图片描述

Exercise 11.2: Data

Create a data matrix X X with 20 observations of 10 variables. Generate a vector b with parameters Then generate the response vector y=Xb+z y = X b + z where z z is a vector with standard normally distributed variables.
Now (by only using y and X X ), find an estimator for b, by solving b^=argminb||Xby||2 b ^ = arg ⁡ min b | | X b − y | | 2 . Plot the true parameters b b and estimated parameters b^. See Figure 1 for an example plot.

一开始这题我是不会的,后来看到网上的资料说这道题可以用scipy.optimize库中的minimize函数。minimize函数进行的是多变量的最小化,原型为scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None),fun是需要进行最小化的函数,x0是初步猜测,这里一开始猜测为0向量,arg是额外参数。

代码:

import numpy as np    
import matplotlib.pyplot as plt  
import scipy as sp   
from scipy.optimize import minimize   

def error(b0, X, y):  
    b0 = np.reshape(b0, (10, 1))  
    return np.linalg.norm(np.dot(X, b0) - y)  

n = 20
m = 10  
X = np.random.randint(1, 4, (n, m))  
X = np.mat(X)  
b = np.random.randint(-2, 2,(1, m))  
b_vec = (np.mat(b)).T  
z = np.random.randn(1, n)  
z_vec = (np.mat(z)).T  
y_vec = np.dot(X, b_vec) + z_vec  
y = np.array(y_vec)  
b0 = np.zeros((10, 1))  
Para = minimize(error, b0, args=(X, y))  
b_ = Para.x    
x1 = np.linspace(0, 9, 10)  
fig = plt.figure()
p1 = plt.scatter(x1, b, marker='x', color='r')  
p2 = plt.scatter(x1, b_, marker='o', color='b')  
plt.xlim(0, 10)  
plt.ylim(-3, 3)  
plt.xlabel('index')  
plt.ylabel('value')  
plt.legend([p1, p2], ['True coefficents', 'Estimated coefficients'])  
plt.show()

运行效果:
这里写图片描述

Exercise 11.3: Histogram and density estimation

Generate a vector z z of 10000 observations from your favorite exotic distribution. Then make a plot that shows a histogram of z (with 25 bins), along with an estimate for the density, using a Gaussian kernel density estimator (see scipy.stats). See Figure 2 for an example plot.

代码:

import numpy as np  
import matplotlib.pyplot as plt  
import seaborn  

x = np.random.randn(10000)
plt.hist(x, 25, normed=1)  
seaborn.kdeplot(x)  
plt.show()

运行效果:
这里写图片描述

最后

以上就是矮小冰淇淋为你收集整理的Python Matplotlib习题Exercise 11.1: Plotting a functionExercise 11.2: DataExercise 11.3: Histogram and density estimation的全部内容,希望文章能够帮你解决Python Matplotlib习题Exercise 11.1: Plotting a functionExercise 11.2: DataExercise 11.3: Histogram and density estimation所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部