🤵♂️ 个人主页:@艾派森的个人主页
✍🏻作者简介: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)
arange创建数组
使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如 下:
numpy.arange(start, stop, step, dtype)
随机数创建
numpy中的random模块包含了很多方法可以用来产生随机数。
ndarray 对象
Numpy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系 列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
zeros创建
创建指定大小的数组,数组元素以 0 来填充
numpy.zeros(shape, dtype = float, order = 'C')
zeros_like:根据传入的数组形状创建全为0的数组
ones创建
创建指定形状的数组,数组元素以 1 来填充。
numpy.ones(shape, dtype = None, order = 'C')
empty 创建
创建一个指定形状(shape)、数据类型(dtype)且未初始化的数 组,里面的元素的值是之前内存的值:
numpy.empty(shape, dtype = float, order = 'C')
full()创建
创建全为某个指定值的数组
full(shape,fill_value)
创建单位矩阵
单位矩阵从左上角到右下角的对角线上的元素均为1,除此以外全都 为0。任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特 性在高等数学中也有广泛应用。
linspace创建
linspace函数用于创建一个一维数组,数组是一个等差数列构成 的,格式如下:
np.linspace(start, stop, num=50,
endpoint=True, retstep=False, dtype=None)
logspace 创建
logspace 函数用于创建一个于等比数列。格式如下:
np.logspace(start, stop, num=50,
endpoint=True, base=10.0, dtype=None)
一维数组索引和切片
ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。 ndarray 数组可以基于 0 - n 的下标进行索引,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。
二维数组的索引和切片
改变数组的维度
通过reshape方法可以将一维数组变成二维、三维或者多维数组, 也可以通过reshape方法将多维数组变成一维。
通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数 组的维度还可以直接设置Numpy数组的shape属性(元组类型), 通过resize方法也可以改变数组的维度。
数组的拼接
concatenate()
concatenate 函数用于沿指定轴连接相同形状的两个或多个数组, 格式如下:
numpy.concatenate((a1, a2, ...), axis)
a1, a2, ...:相同类型的数组
axis:沿着它连接数组的轴,默认为 0
hstack()、vstack()和dstack()的使用
numpy.hstack它通过水平堆叠来生成数组。
numpy.vstack 它通过垂直堆叠来生成数组。
数组的转置
将行与列对调,即第一行变成第一列…或第一列变成第一行…的操作 即使转置操作。
数组的分隔
split分隔
numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:
numpy.split(ary, indices_or_sections, axis)
ary:被分割的数组
indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置 (左开右闭)
axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分
水平分隔
使用hsplit函数可以水平分隔数组,该函数有两个参数,第1个参数 表示待分隔的数组,第2个参数表示要将数组水平分隔成几个小数 组。
垂直分隔
使用vsplit函数可以垂直分隔数组,该函数有两个参数,第1个参数 表示待分隔的数组,第2个参数表示将数组垂直分隔成几个小数组。
数学函数
Numpy支持向量处理ndarray对象,提高程序运算速度。
算术函数
如果参与运算的两个对象 都是ndarray,并且形状相同,那么会对 位彼此之间进行(+ - * /)运算。NumPy 算术函数包含简单的加减 乘除: add(),subtract(),multiply() 和 divide()。
numpy.mod() 计算输入数组中相应元素的相除后的余数。
函数 numpy.remainder() 也产生相同的结果。
统计函数
NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大 元素,百分位标准差和方差等。 具体如下:
其他常用函数
数组排序
排序中主要用到的方法是np.sort和np.argsort。其中np.sort()是对 数组直接排序。而np.argsort()是返回排序后的原始索引。
numpy广播机制
广播的规则
1,如果两个数组维度个数不同,那么小维度的数组形状会在 左边补1
2,如果两个数组形状在任何一个维度上都不匹配,数组的形 状会沿着维度为1的维度扩展到匹配上另一个数组的形状
3,如果没有维度形状为1,则会引发异常
比较掩码
比较操作,会返回与参与运算数组形状相同的数组,其中,满足条 件的为True,不满足的为False
整理不易,希望能对学习numpy的小伙伴有所帮助!