Python中Numpy和Matplotlib的基本使用指南


Posted in Python onNovember 02, 2021

1. Jupyter Notebooks

作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!!

你可以按[Ctrl] + [Enter]快捷键或按菜单中的运行按钮来运行单元格。

Python中Numpy和Matplotlib的基本使用指南

在function(后面按[shift] + [tab],可以获得函数或对象的帮助。

Python中Numpy和Matplotlib的基本使用指南

你还可以通过执行function?获得帮助。

Python中Numpy和Matplotlib的基本使用指南

2. NumPy 数组

操作numpy数组是 Python 机器学习(或者,实际上是任何类型的科学计算)的重要部分。 在这里我主要快速介绍一下重要基本的功能。

 

import numpy as np

# 设置随机种子来获得可重复性
rnd = np.random.RandomState(seed=520)

# 生成随机数组
# Array: shape(3, 5); 
#        value: [0, 1]
X = rnd.uniform(low=0.0, high=1.0, size=(3, 5)) 

print(X)

(请注意,NumPy 数组也是从 0 开始的索引)

# 元素访问

# 获取单个元素
# (这里是第一行第一列的元素)
print(X[0, 0])

# 获取一行
# (这里是第二行)
print(X[1])

# 获取一列
# (这里是第二列)
print(X[:, 1])

# 数组转置
print(X.T)
# 创建均匀间隔的数字的行向量。
y = np.linspace(0, 12, 5) # 从0开始,到12结束,数量为5
print(y)

# 将行向量转换为列向量
print(y[:, np.newaxis])


# 获得形状或改变数组形状

# 生成随机数组
rnd = np.random.RandomState(seed=520)
X = rnd.uniform(low=0.0, high=1.0, size=(3, 5))

# X的大小(3,5) 
print(X.shape)

# 将 X 大小变为 (5,3)
X_reshaped = X.reshape(5, 3)
print(X_reshaped)

# 使用整数数组的索引(花式索引)
indices = np.array([3, 1, 0])
print(indices)
# 取X的第4,2,1列作为新数组
X[:, indices]

3. SciPy 稀疏数组

虽然我们平时不会大量使用它们,但稀疏矩阵在某些情况下非常好用。 在一些机器学习任务中,尤其是与文本分析相关的任务,数据可能大多为零。 存储所有这些零是非常低效的,并且以仅包含“非零”值的方式表示可以更有效。 我们可以创建和操作稀疏矩阵,如下所示:

# 创建一个包含大量零的随机数组
rnd = np.random.RandomState(seed=123)

X = rnd.uniform(low=0.0, high=1.0, size=(10, 5))
print(X)

# 将大多数元素设置为零
X[X < 0.7] = 0
print(X)

from scipy import sparse
# 将 X 转换为 CSR(压缩稀疏行)矩阵
X_csr = sparse.csr_matrix(X)
print(X_csr)

# 将稀疏矩阵转换为密集数组
print(X_csr.toarray())

(你可能偶然发现了一种将稀疏表示转换为密集表示的替代方法:numpy.todensetoarray返回一个 NumPy 数组,而todense返回一个 NumPy 矩阵。在本教程中,我们将使用 NumPy 数组,而不是矩阵;scikit-learn 不支持后者。)

CSR 表示对于计算非常有效,但它不适合添加元素。 为此,LIL(List-In-List)表示更好:

# 创建一个空的 LIL 矩阵并添加一些项目
X_lil = sparse.lil_matrix((5, 5))

for i, j in np.random.randint(0, 5, (15, 2)):
    X_lil[i, j] = i + j

print(X_lil)
print(type(X_lil))

X_dense = X_lil.toarray()
print(X_dense)
print(type(X_dense))

通常,一旦创建了 LIL 矩阵,将其转换为 CSR 格式很有用(许多 scikit-learn 算法需要 CSR 或 CSC 格式)

X_csr = X_lil.tocsr()
print(X_csr)
print(type(X_csr))

可用于各种问题的可用稀疏格式包括:

  • CSR(压缩稀疏行)
  • CSC(压缩稀疏列)
  • BSR(块稀疏行)
  • COO(坐标)
  • DIA(对角线)
  • DOK(键的字典)
  • LIL(列表中的列表)

scipy.sparse子模块还有很多稀疏矩阵的函数,包括线性代数,稀疏求解器,图算法等等。

4. Matplotlib

机器学习的另一个重要部分是数据可视化。 Python 中最常用的工具是matplotlib。 这是一个非常灵活的包,我们将在这里介绍一些基础知识。

由于使用的是 Jupyter,所以使用 IPython 方便的内置“魔术函数”,即“matoplotlib内联”模式,它将直接在笔记本内部绘制图形。

%matplotlib inline

import matplotlib.pyplot as plt

# 绘制直线
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x));

# 散点图
x = np.random.normal(size=500)
y = np.random.normal(size=500)
plt.scatter(x, y);

# 使用 imshow 展示绘图
# - note that origin is at the top-left by default!

x = np.linspace(1, 12, 100)
y = x[:, np.newaxis]

im = y * np.sin(x) * np.cos(y)
print(im.shape)

plt.imshow(im);

# 轮廓图
# - 请注意,此处的原点默认位于左下角!
plt.contour(im);

# 3D 绘图
from mpl_toolkits.mplot3d import Axes3D
ax = plt.axes(projection='3d')
xgrid, ygrid = np.meshgrid(x, y.ravel())
ax.plot_surface(xgrid, ygrid, im, cmap=plt.cm.viridis, cstride=2, rstride=2, linewidth=0);

有许多可用的绘图类型。 查看matplotlib库是一个很快的学习方法。

总结

到此这篇关于Python中Numpy和Matplotlib基本使用的文章就介绍到这了,更多相关Python Numpy和Matplotlib使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 图片验证码代码分享
Jul 04 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python生成器以及应用实例解析
Feb 08 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
python轮询机制控制led实例
May 03 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
Keras搭建自编码器操作
Jul 03 Python
python中upper是做什么用的
Jul 20 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 #Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 #Python
Python 正则模块详情
Nov 02 #Python
Python 数据可视化之Bokeh详解
Nov 02 #Python
Python 数据可视化之Matplotlib详解
分位数回归模型quantile regeression应用详解及示例教程
Python常遇到的错误和异常
Nov 02 #Python
You might like
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
PHP提取中文首字母
2008/04/09 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
简单谈谈json跨域
2016/03/13 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python Tkinter基础控件用法
2014/09/03 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
酒店仓管员岗位职责
2014/04/28 职场文书
作风大整顿心得体会
2014/09/10 职场文书
2014年学生会工作总结
2014/11/07 职场文书
党支部审查意见
2015/06/02 职场文书
运动会通讯稿600字
2015/07/20 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android