matplotlib作业

这篇博客涵盖了两个练习,一是使用matplotlib创建数据矩阵并进行线性回归,通过解决最小二乘问题来估计参数。二是从特定分布生成数据,绘制直方图并用高斯核密度估计来估算概率密度。
摘要由CSDN通过智能技术生成
Exercise 11.1: Plotting a function
Plot the function
f ( x ) = sin 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

fig, ax = plt.subplots()
x = np. linspace (0 , 2, 1000)

y = np.power(np.sin(x-2), 2) * np.exp(-x*x)
plt . plot (x , y)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('my title')
plt . show()


Exercise 11.2: Data 
Create a data matrix X with 20 observations of 10 variables. Generate a vector b with parameters Then generate the response vector y = Xb+z where z is a vector with standard normally distributed variables. Now (by only using y and X), find an estimator for b, by solving 
^b = arg minb||Xby||2b||Xb−y||2 

Plot the true parameters b and estimated parameters ˆb. See Figure 1 for an example plot.

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

def func(b0, X, y):  
    return np.linalg.norm(np.dot(X, b0) - y, ord=2)  

X = np.random.normal(size = (20,10))
b = np.random.normal(size = (10, 1))
z = np.random.normal(size = (20,1))
y = np.dot(X, b) + z

b0 = np.zeros((10,1))
p = minimize(func, b0, args=(X,y))

b1 = p.x
x1 = np.linspace(0, 9, 10)
fig = plt.figure()
p1 = plt.scatter(x1, b, c = 'c')
p2 = plt.scatter(x1, b1, c = 'm')

plt.xlabel('index')  
plt.ylabel('value')  
plt.legend([p1, p2], ['Ture coeffiients', 'Estimated coefficients'])  
plt.show() 


Exercise 11.3: Histogram and density estimation 

Generate a vector 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 matplotlib.mlab as mlab 

data = np.random.randn(10000) 
num_bins = 25 
n, bins, patches = plt.hist(data, 25, normed=True, facecolor='g', alpha=0.5) 
y = mlab.normpdf(bins, 0, 1) 
plt.plot(bins, y, 'b--') 
plt.title(r'standard normal distribution') 
plt.show()


### 回答1: numpy、pandas和matplotlib是Python中常用的数据处理和可视化工具库。它们可以帮助我们更方便地进数据分析和展示。 numpy是Python中的一个科学计算库,提供了高效的数组操作和数学函数。它可以用来处理各种类型的数据,如数字、字符串、图像等。 pandas是Python中的一个数据分析库,提供了高效的数据结构和数据分析工具。它可以用来处理各种类型的数据,如表格、时间序等。 matplotlib是Python中的一个数据可视化库,提供了各种绘图工具和图形界面。它可以用来绘制各种类型的图表,如折线图、散点图、柱状图等。 在使用这些库时,我们需要先导入它们的模,然后调用相应的函数来完成我们需要的操作。例如,我们可以使用numpy中的array函数来创建一个数组,使用pandas中的read_csv函数来读取一个CSV文件,使用matplotlib中的plot函数来绘制一个折线图等。 总之,numpy、pandas和matplotlib是Python中非常重要的数据处理和可视化工具库,掌握它们的使用方法对于进数据分析和展示非常有帮助。 ### 回答2: numpy是Python数据科学中最基本的库之一,它提供高效的数组和矩阵运算,使处理数字计算变得更加容易。numpy的数组在数学计算和数据科学方面被广泛使用,这些应用包括线性代数、数组操作、统计学和图像处理等。 pandas是Python中用于数据处理和数据分析的重要库之一,它被用来读取、跟踪和管理大量数据。pandas提供高效的DataFrame和Series数据结构,使得数据分析更加简洁、易于阅读和理解。pandas在处理数据时非常方便,可以轻松地执数据过滤、排序、聚合和连接。 matplotlib是Python中用于数据可视化和科学绘图的库,它提供Python中最灵活和最可定制的绘图选项之一。使用matplotlib,用户可以生成各种不同的图形展示,包括线图、柱状图、散点图和饼图等,同时matplotlib还允许用户进自定义调整、注释和标记。 以上三个库的组合提供了Python中非常强大的数据科学生态系统,适合用于数据处理、分析和可视化。这些库的使用也非常广泛,包括数据科学领域、金融领域、物理学领域和天文学领域等。无论是初学者还是专业人士,都可以从中获益和发挥作用。 ### 回答3: numpy、pandas、和matplotlib是Python中非常常用的三个模,它们能够方便地进数据处理和数据可视化。 首先,我们来谈一下numpy。numpy是Python中处理科学数据的基础模。通过使用numpy,我们能够方便地进矩阵运算、数值分析、信号处理、图像处理等科学计算,从而更好地处理数据。在numpy中最重要的是其多维数组对象ndarray,通过使用ndarray,我们可以对数组中的数据进高效的数学运算,例如加减乘除等。另外,numpy还提供了一些方便的函数,例如随机数生成函数、拷贝和转换函数等,使得使用numpy进科学计算变得更加得心应手。 接下来,我们来说一下pandas。Pandas是一个Python工具包,主要用于数据处理和数据分析。Pandas中的两个主要数据结构是Series和DataFrame,它们可以方便地处理各种类型的数据,从而使得数据清洗和数据分析变得更加高效和简单。使用Pandas,我们可以轻松读取和导入数据,处理和过滤数据,清理和填充数据,以及进数据分析和可视化。Pandas提供了很多工具,例如数据重构、分组、聚合、切片、索引、透视以及时间序等,使得数据处理和分析变得更加高效和灵活。 最后,我们来看一下matplotlibMatplotlib是一个Python中常用的数据可视化工具。它提供一系高质量的数据可视化图形,例如折线、散点、柱形、饼图、等高线、瀑布图等等。通过使用matplotlib,我们可以快速地将获得的数据进可视化,从而更容易地发现其中的规律和特点。Matplotlib提供了丰富的参数设置和样式选项,使得生成的图形可以更加美观和专业。同时,matplotlib还提供了集成的图像显示和保存函数,可以轻松地将图形保存在不同的格式中,例如PNG、PDF、SVG、EPS等格式。 总之,numpy、pandas、和matplotlib都是处理和分析数据的重要工具,它们相互补充,共同构成了Python中的数据分析生态系统。通过掌握这三个工具,我们可以轻松地处理和分析各种类型的数据,从而更好地理解数据和发现数据规律。为了掌握这三个工具,我们需要认真学习它们的基本语法和常用函数,并勤加练习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值