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遍历pandas数据方法总结
Feb 09 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Python 实现try重新执行
Dec 21 Python
python numpy 矩阵堆叠实例
Jan 17 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
python 实现简易的记事本
Nov 30 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
php实现用户在线时间统计详解
2011/10/08 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
js opener的使用详解
2014/01/11 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
Python命名空间详解
2014/08/18 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python 整数越界问题详解
2019/06/27 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
中国网上药店领导者:1药网
2017/02/16 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
中国梦的演讲稿
2014/01/08 职场文书
销售员试用期自我评价
2014/09/15 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
感谢师恩主题班会
2015/08/17 职场文书
Python 数据科学 Matplotlib图库详解
2021/07/07 Python