您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python中Numpy和Matplotlib的基本使用指南

51自学网 2022-02-21 10:49:43
  python
这篇教程Python中Numpy和Matplotlib的基本使用指南写得很实用,希望能帮到您。

1. Jupyter Notebooks

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

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

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

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

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结束,数量为5print(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] = 0print(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 + jprint(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 inlineimport 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 Axes3Dax = 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使用内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python模块与C和C++动态库相互调用实现过程示例
python机器学习创建基于规则聊天机器人过程示例详解
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。