numpy菜鸟教程知识梳理
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
numpy.dtype(object, align, copy)
在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。
numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
numpy.empty(shape, dtype = float, order = 'C')
创建指定大小的数组,数组元素以 0 来填充:
numpy.zeros(shape, dtype = float, order = 'C')
创建指定形状的数组,数组元素以 1 来填充:
numpy.ones(shape, dtype = None, order = 'C')
ndarray对象的内容可以通过索引或切片来访问和修改。
ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。
冒号 : 的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。
我们可以通过一个布尔数组来索引目标数组。
布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组。
当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。
默认使用迭代器时无法修改数组元素,如果修改需要修改迭代器参数。
迭代器中有flags参数。
如果两个数组是可广播的,nditer 组合对象能够同时迭代它们。 假设数组 a 的维度为 3X4,数组 b 的维度为 1X4 ,则使用以下迭代器(数组 b 被广播到 a 的大小)。见例子。
以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。它们基于 Python 内置库中的标准字符串函数。这些函数在字符数组类(numpy.char)中定义。
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。
numpy.degrees将弧度转换为角度
返回指定数字的四舍五入值。
返回小于或者等于指定表达式的最大整数,即向下取整。
返回大于或者等于指定表达式的最小整数,即向上取整。
需要注意的是数组必须具有相同的形状或符合数组广播规则。
返回参数逐元素的倒数。如 1/4 倒数为 4/1。
将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。
计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。
numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
numpy.amax() 用于计算数组中的元素沿指定轴的最大值。
计算数组中元素最大值与最小值的差(最大值 - 最小值)。
百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。
用于计算数组 a 中元素的中位数(中值)
返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。
可以使用加权平均值。
返回的是数组值从小到大的索引值。
numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。
返回输入数组中非零元素的索引。
返回输入数组中满足给定条件的元素的索引。
根据某个条件从数组中抽取元素,返回满条件的元素。
numpy.ndarray.byteswap() 函数将 ndarray 中每个元素中的字节进行大小端转换。
副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不在同一位置。
视图是数据的一个别称或引用,通过该别称或引用亦便可访问、操作原有数据,但原有数据不会产生拷贝。如果我们对视图进行修改,它会影响到原始数据,物理内存在同一位置。
直接赋值,a = b,则b值更改,a值也更改
ndarray.view() 方会创建一个新的数组对象,该方法创建的新数组的维数更改不会更改原始数据的维数。
使用切片创建视图修改数据会影响到原始数组:
ndarray.copy() 函数创建一个副本。 对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置
NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。
创建一个新的初始化后的矩阵
创建一个以0填充的矩阵
创建一个以1填充的矩阵
numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。
numpy.matlib.identity() 函数返回给定大小的单位矩阵。
numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。
NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:
数组或矩阵的点积
两个向量的点积
内积
矩阵相乘
numpy.linalg.det() 函数计算输入矩阵的行列式。
numpy.linalg.solve() 函数给出了矩阵形式的线性方程的解。
numpy.linalg.inv() 函数计算矩阵的乘法逆矩阵。