Numpy是什么
Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算 相关功能,比如数据统计,随机数生成等。其提供最核心类型为多 维数组类型(ndarray),支持大量的维度数组与矩阵运算, Numpy支持向量处理ndarray对象,提高程序运算速度。
安装
安装 NumPy 最简单的方法就是使用 pip 工具,语法格式如下:
`pip install numpy`
array创建数组
numpy模块的array函数可以生成多维数组。例如,如果要生成一 个二维数组,需要向array函数传递一个列表类型的参数。每一个列 表元素是一维的ndarray类型数组,作为二维数组的行。另外,通 过ndarray类的shape属性可以获得数组每一维的元素个数(元组形 式),也可以通过shape[n]形式获得每一维的元素个数,其中n是 维度,从0开始。
语法格式如下:
` 1. numpy.array(object, dtype = None, copy = True, 2. 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函数用于创建一个一维数组,数组是一个等差数列构成 的,格式如下:
` 1. np.linspace(start, stop, num=50, 2. endpoint=True, retstep=False, dtype=None) `
logspace 创建
logspace 函数用于创建一个于等比数列。格式如下:
1. np.logspace(start, stop, num=50,
2. 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的小伙伴有所帮助!
点击下方安全链接前往获取
CSDN大礼包:《Python入门&进阶学习资源包》免费分享
👉Python实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python书籍和视频合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉Python副业创收路线👈
这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》,点击下方安全链接前往获取
CSDN大礼包:《Python入门&进阶学习资源包》免费分享
本文转自 网络,如有侵权,请联系删除。