🤵♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

Numpy是什么

array创建数组

 arange创建数组

 随机数创建

 ndarray 对象

 zeros创建

 ones创建

 empty 创建

 full()创建

 创建单位矩阵

 linspace创建

 logspace 创建

 一维数组索引和切片

 二维数组的索引和切片

 改变数组的维度

数组的拼接

数组的转置

 数组的分隔

数学函数

算术函数

统计函数

 其他常用函数

 数组排序

 numpy广播机制

 比较掩码


Numpy是什么

Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算 相关功能,比如数据统计,随机数生成等。其提供最核心类型为多 维数组类型(ndarray),支持大量的维度数组与矩阵运算, Numpy支持向量处理ndarray对象,提高程序运算速度。

安装

安装 NumPy 最简单的方法就是使用 pip 工具,语法格式如下:


pip install numpy


array创建数组

numpy模块的array函数可以生成多维数组。例如,如果要生成一 个二维数组,需要向array函数传递一个列表类型的参数。每一个列 表元素是一维的ndarray类型数组,作为二维数组的行。另外,通 过ndarray类的shape属性可以获得数组每一维的元素个数(元组形 式),也可以通过shape[n]形式获得每一维的元素个数,其中n是 维度,从0开始。

语法格式如下:


numpy.array(object, dtype = None, copy = True,
             order = None, subok = False, ndmin = 0)


一文让你快速上手Numpy_线性代数


一文让你快速上手Numpy_一维数组_02


 arange创建数组

使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如 下:


numpy.arange(start, stop, step, dtype)


一文让你快速上手Numpy_线性代数_03


一文让你快速上手Numpy_二维数组_04


 随机数创建

numpy中的random模块包含了很多方法可以用来产生随机数。

一文让你快速上手Numpy_数组_05


一文让你快速上手Numpy_python_06


 ndarray 对象

Numpy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系 列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

一文让你快速上手Numpy_线性代数_07


 zeros创建

创建指定大小的数组,数组元素以 0 来填充


numpy.zeros(shape, dtype = float, order = 'C')


zeros_like:根据传入的数组形状创建全为0的数组 

一文让你快速上手Numpy_二维数组_08


 ones创建

创建指定形状的数组,数组元素以 1 来填充。


numpy.ones(shape, dtype = None, order = 'C')


一文让你快速上手Numpy_数组_09


 empty 创建

创建一个指定形状(shape)、数据类型(dtype)且未初始化的数 组,里面的元素的值是之前内存的值:


numpy.empty(shape, dtype = float, order = 'C')


一文让你快速上手Numpy_python_10


 full()创建

创建全为某个指定值的数组


full(shape,fill_value)


一文让你快速上手Numpy_数组_11


 创建单位矩阵

单位矩阵从左上角到右下角的对角线上的元素均为1,除此以外全都 为0。任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特 性在高等数学中也有广泛应用。

一文让你快速上手Numpy_数组_12


 linspace创建

linspace函数用于创建一个一维数组,数组是一个等差数列构成 的,格式如下:


np.linspace(start, stop, num=50,
endpoint=True, retstep=False, dtype=None)


一文让你快速上手Numpy_一维数组_13


一文让你快速上手Numpy_数组_14


 logspace 创建

logspace 函数用于创建一个于等比数列。格式如下:


np.logspace(start, stop, num=50,
endpoint=True, base=10.0, dtype=None)


一文让你快速上手Numpy_python_15


一文让你快速上手Numpy_数组_16


 一维数组索引和切片

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。 ndarray 数组可以基于 0 - n 的下标进行索引,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

一文让你快速上手Numpy_python_17


 二维数组的索引和切片

一文让你快速上手Numpy_二维数组_18


一文让你快速上手Numpy_python_19


 改变数组的维度

通过reshape方法可以将一维数组变成二维、三维或者多维数组, 也可以通过reshape方法将多维数组变成一维。

一文让你快速上手Numpy_python_20


 通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数 组的维度还可以直接设置Numpy数组的shape属性(元组类型), 通过resize方法也可以改变数组的维度。

数组的拼接

concatenate()

一文让你快速上手Numpy_线性代数_21


 concatenate 函数用于沿指定轴连接相同形状的两个或多个数组, 格式如下:


numpy.concatenate((a1, a2, ...), axis)


 a1, a2, ...:相同类型的数组

axis:沿着它连接数组的轴,默认为 0

一文让你快速上手Numpy_python_22


 hstack()、vstack()和dstack()的使用

numpy.hstack它通过水平堆叠来生成数组。

numpy.vstack 它通过垂直堆叠来生成数组。

数组的转置

将行与列对调,即第一行变成第一列…或第一列变成第一行…的操作 即使转置操作。

一文让你快速上手Numpy_数组_23


 数组的分隔

split分隔

numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:


numpy.split(ary, indices_or_sections, axis)


ary:被分割的数组

indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置 (左开右闭)

axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分

一文让你快速上手Numpy_数组_24


 水平分隔

使用hsplit函数可以水平分隔数组,该函数有两个参数,第1个参数 表示待分隔的数组,第2个参数表示要将数组水平分隔成几个小数 组。

垂直分隔

使用vsplit函数可以垂直分隔数组,该函数有两个参数,第1个参数 表示待分隔的数组,第2个参数表示将数组垂直分隔成几个小数组。

数学函数

Numpy支持向量处理ndarray对象,提高程序运算速度。

一文让你快速上手Numpy_数组_25


算术函数

如果参与运算的两个对象 都是ndarray,并且形状相同,那么会对 位彼此之间进行(+ - * /)运算。NumPy 算术函数包含简单的加减 乘除: add(),subtract(),multiply() 和 divide()。

一文让你快速上手Numpy_二维数组_26


 numpy.mod() 计算输入数组中相应元素的相除后的余数。

函数 numpy.remainder() 也产生相同的结果。

统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大 元素,百分位标准差和方差等。 具体如下:

一文让你快速上手Numpy_一维数组_27


 其他常用函数

一文让你快速上手Numpy_线性代数_28


 数组排序

排序中主要用到的方法是np.sort和np.argsort。其中np.sort()是对 数组直接排序。而np.argsort()是返回排序后的原始索引。

一文让你快速上手Numpy_一维数组_29


 numpy广播机制

广播的规则

1,如果两个数组维度个数不同,那么小维度的数组形状会在 左边补1

2,如果两个数组形状在任何一个维度上都不匹配,数组的形 状会沿着维度为1的维度扩展到匹配上另一个数组的形状

3,如果没有维度形状为1,则会引发异常

一文让你快速上手Numpy_python_30


 比较掩码

比较操作,会返回与参与运算数组形状相同的数组,其中,满足条 件的为True,不满足的为False

一文让你快速上手Numpy_python_31


整理不易,希望能对学习numpy的小伙伴有所帮助!