Numpy 的一些基础操作必知必会

PyTorch入门实战教程

Numpy 是 Python 的一个科学计算库,在数学、统计、工程等方面都有非常好的应用。Numpy 对多维数组的支持也非常完善,包括矩阵的运算,高维数组运算等。很多库都依赖于 Numpy,例如 PyTorch,Tensorflow 等,尤其涉及到多维数组的操作时,更是少不了 Numpy。本篇基础教程由 PyTorch 中文网整理,希望帮助每个刚刚接触 Numpy 的朋友快速入门。

什么是 NumPy?

NumPy 是Python 语言的一个扩展程序库。支持高端大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 引入了多维数组以及可以直接有效率地操作多维数组的函数与运算符。因此在 NumPy 上只要能被表示为针对数组或矩阵运算的算法,其运行效率几乎都可以与编译过的等效 C 语言代码一样快。

NumPy 提供了与 MATLAB 相似的功能与操作方式,因为两者皆为解释型语言,并且都可以让用户在针对数组或矩阵运算时提供较标量运算更快的性能。从本质上来说,NumPy 与 MATLAB 同样是利用 BLAS 与 LAPACK 来提供高效率的线性代数运算。

How to install NumPy?

可以使用 conda 或 pip 来安装 NumPy:

Conda 安装:

Pip 安装:

如果需要在 Jupyter Notebook 中安装:

要使用 NumPy,首先要引入:

创建数组

在 NumPy 中创建一个数组最简单的方法是从 Python 本身的 list 转换而来:

实际使用中,这两句可以合并:

数组的形状

可以使用 shape 属性来查看数组的形状,也可以用 dtype 属性查看数组元素的类型:

多维数组

可以用双尖括号([])来创建多维数组,每个维度之间用逗号分隔,例如:

np.zeros 和 np.ones

这两个命令可以创建值全部为 0 或全部为 1 的数组,一般用来初始化一个数组的时候:

这里面的参数:

  • shape:形状
  • dtype:数据类型
  • order:C 代表行优先;F 代表列优先

例如:

数组形状变换

有些时候需要对数组的形状进行变换,例如:

输出:

如果需要把一个多维数组“拍平”,可以使用 flatten 函数:

hstack 和 vstack

这两个函数分别用于在水平方向和竖直方向增加数据,我们来看具体例子:

生成随机数

用下列语句可以生成随机的高斯分布:

  • Loc: 平均值
  • scale: 标准差(standard deviation)
  • Size: 返回多少个数

我们来看下面的例子:

如果将这个分布画出来,符合下列分布:

生成区间

有些时候我们需要在一个区间内的一些数,这个时候要用到 arange

  • Start: 区间开始
  • Stop: 区间结束
  • Step: 步长,默认为 1

 

例如:

Linspace

这个方法可以在一个区间内平均地生成多个数。

  • Start: 数列开始的值
  • Stop: 数列结束的值
  • Num: 生成的数量,默认 50
  • Endpoint: 默认是 True,如果是 True, 则数列包含最后的 stop 值,反之不包含
如果不包含最后一个数:

点乘

我们可以用 np.dot 实现矩阵的点乘操作:

矩阵相乘

同样,可以用 np.matmul 实现矩阵相乘的操作:

希望本教程对你入门有所帮助。

PyTorch入门实战教程
除特别注明外,本站所有文章均为 PyTorch 中文网原创,转载请注明出处:https://www.pytorchtutorial.com/numpy-basic/

Leave a Reply

Your email address will not be published. Required fields are marked *

返回顶部