NumPy

 

目录

NumPy - Ndarray 对象

NumPy数据类型

数据类型对象 (dtype)

NumPy数组属性

NumPy数组创建例程

NumPy - 来自现有数据的数组

NumPy - 来自数值范围的数组

NumPy - 切片和索引

NumPy - 高级索引

NumPy - 广播

NumPy - 数组上的迭代

NumPy - 数组操作

修改形状

翻转操作

修改维度

数组的连接

数组分割

添加/删除元素


NumPy - Ndarray 对象

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  1. object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
  2. dtype 数组的所需数据类型,可选。
  3. copy 可选,默认为true,对象是否被复制。
  4. order C(按行)、F(按列)或A(任意,默认)。
  5. subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
  6. ndimin 指定返回数组的最小维数。

NumPy数据类型

数据类型对象 (dtype)

numpy.dtype(object, align, copy)
  1. Object:被转换为数据类型的对象。
  2. Align:如果为true,则向字段添加间隔,使其类似 C 的结构体。
  3. Copy: 生成dtype对象的新副本,如果为flase,结果是内建数据类型对象的引用。

NumPy数组属性

  1. ndarray.shape:这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小。
  2. ndarray.reshape:NumPy 也提供了reshape函数来调整数组大小。
  3. ndarray.ndim:这一数组属性返回数组的维数。
  4. numpy.itemsize:这一数组属性返回数组中每个元素的字节单位长度。
  5. numpy.flags:ndarray对象拥有以下属性。这个函数返回了它们的当前值。
    1. C_CONTIGUOUS (C):数组位于单一的、C 风格的连续区段内。
    2. F_CONTIGUOUS (F):数组位于单一的、Fortran 风格的连续区段内。
    3. OWNDATA (O):数组的内存从其它对象处借用。
    4. WRITEABLE (W):数据区域可写入。 将它设置为flase会锁定数据,使其只读。
    5. ALIGNED (A) 数据和任何元素会为硬件适当对齐。
    6. UPDATEIFCOPY (U) 这个数组是另一数组的副本。当这个数组释放时,源数组会由这个数组中的元素更新。

NumPy数组创建例程

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

它创建指定形状和dtype的未初始化数组。

  1. Shape:空数组的形状,整数或整数元组
  2. Dtype:所需的输出数组类型,可选
  3. Order:'C'为按行的 C 风格数组,'F'为按列的 Fortran 风格数组
numpy.zeros(shape, dtype = float, order = 'C')

返回特定大小,以 0 填充的新数组。

  1. Shape:空数组的形状,整数或整数元组
  2. Dtype:所需的输出数组类型,可选。
  3. Order:'C'为按行的 C 风格数组,'F'为按列的 Fortran 风格数组。
numpy.ones(shape, dtype = None, order = 'C')

返回特定大小,以 1 填充的新数组。

  1. Shape:空数组的形状,整数或整数元组。
  2. Dtype:所需的输出数组类型,可选。
  3. Order:'C'为按行的 C 风格数组,'F'为按列的 Fortran 风格数组。

NumPy - 来自现有数据的数组

numpy.asarray(a, dtype = None, order = None)

此函数类似于numpy.array,除了它有较少的参数。 这个例程对于将 Python 序列转换为ndarray非常有用。

  1. a:任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表。
  2. dtype:通常,输入数据的类型会应用到返回的ndarray。
  3. order:'C'为按行的 C 风格数组,'F'为按列的 Fortran 风格数组。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

此函数将缓冲区解释为一维数组。 暴露缓冲区接口的任何对象都用作参数来返回ndarray。

  1. buffer 任何暴露缓冲区借口的对象。
  2. dtype 返回数组的数据类型,默认为float。
  3. count 需要读取的数据数量,默认为-1,读取所有数据。
  4. offset 需要读取的起始位置,默认为0。
numpy.fromiter(iterable, dtype, count = -1)

此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。

  1. iterable:任何可迭代对象。
  2. dtype:返回数组的数据类型。
  3. count:需要读取的数据数量,默认为-1,读取所有数据。

NumPy - 来自数值范围的数组

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

这个函数返回ndarray对象,包含给定范围内的等间隔值。

  1. start:范围的起始值,默认为0。
  2. stop:范围的终止值(不包含)。
  3. step:两个值的间隔,默认为1。
  4. dtype:返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
numpy.linspace(start, stop, num, endpoint, retstep, dtype)

此函数类似于arange()函数。 在此函数中,指定了范围之间的均匀间隔数量,而不是步长。

  1. start:序列的起始值。
  2. stop:序列的终止值,如果endpoint为true,该值包含于序列中。
  3. num:要生成的等间隔样例数量,默认为50。
  4. endpoint:序列中是否包含stop值,默认为ture。
  5. retstep:如果为true,返回样例,以及连续数字之间的步长。
  6. dtype:输出ndarray的数据类型。
numpy.logscale(start, stop, num, endpoint, base, dtype)

此函数返回一个ndarray对象,其中包含在对数刻度上均匀分布的数字。 刻度的开始和结束端点是某个底数的幂,通常为 10。

  1. start:起始值是base ** start。
  2. stop:终止值是base ** stop。
  3. num:范围内的数值数量,默认为50。
  4. endpoint:如果为true,终止值包含在输出数组当中。
  5. base:对数空间的底数,默认为10;
  6. dtype:输出数组的数据类型,如果没有提供,则取决于其它参数。

NumPy - 切片和索引

切片仅为视图

NumPy - 高级索引

NumPy - 广播

NumPy - 数组上的迭代

NumPy - 数组操作

修改形状

numpy.reshape(arr, newshape, order')

这个函数在不改变数据的条件下修改形状,它接受如下参数:

  1. arr:要修改形状的数组。
  2. newshape:整数或者整数数组,新的形状应当兼容原有形状。
  3. order:'C'为 C 风格顺序,'F'为 F 风格顺序,'A'为保留原顺序。
numpy.ndarray.flat

该函数返回数组上的一维迭代器,行为类似 Python 内建的迭代器。

ndarray.flatten(order)

该函数返回折叠为一维的数组副本,函数接受下列参数:

order:'C' — 按行,'F' — 按列,'A' — 原顺序,'k' — 元素在内存中的出现顺序。

numpy.ravel(a, order)

这个函数返回展开的一维数组,并且按需生成副本。返回的数组和输入数组拥有相同数据类型。这个函数接受两个参数。

order:'C' — 按行,'F' — 按列,'A' — 原顺序,'k' — 元素在内存中的出现顺序。

翻转操作

numpy.transpose(arr, axes)

这个函数翻转给定数组的维度。如果可能的话它会返回一个视图。函数接受下列参数:

  1. arr:要转置的数组。
  2. axes:整数的列表,对应维度,通常所有维度都会翻转。
numpy.ndarray.T

该函数属于ndarray类,行为类似于numpy.transpose。

numpy.rollaxis(arr, axis, start)

该函数向后滚动特定的轴,直到一个特定位置。这个函数接受三个参数:

  1. arr:输入数组。
  2. axis:要向后滚动的轴,其它轴的相对位置不会改变。
  3. start:默认为零,表示完整的滚动。会滚动到特定位置。
numpy.swapaxes(arr, axis1, axis2)

该函数交换数组的两个轴。对于 1.10 之前的 NumPy 版本,会返回交换后数组的试图。这个函数接受下列参数:

  1. r:要交换其轴的输入数组。
  2. axis1:对应第一个轴的整数。
  3. axis2:对应第二个轴的整数。

修改维度

numpy.broadcast_to(array, shape, subok)

函数通过在指定位置插入新的轴来扩展数组形状。该函数需要两个参数:

  1. arr:输入数组。
  2. axis:新轴插入的位置
numpy.squeeze(arr, axis)

函数从给定数组的形状中删除一维条目。 此函数需要两个参数。

  1. arr:输入数组。
  2. axis:整数或整数元组,用于选择形状中单一维度条目的子集。

数组的连接

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

数组的连接是指连接。 此函数用于沿指定轴连接相同形状的两个或多个数组。 该函数接受以下参数。

  1. a1, a2, ...:相同类型的数组序列。
  2. axis:沿着它连接数组的轴,默认为 0。
numpy.stack(arrays, axis)

此函数沿新轴连接数组序列。 此功能添加自 NumPy 版本 1.10.0。 需要提供以下参数。

  1. arrays:相同形状的数组序列。
  2. axis:返回数组中的轴,输入数组沿着它来堆叠。
numpy.hstack

函数的变体,通过堆叠来生成水平的单个数组。

numpy.vstack

numpy.stack函数的变体,通过堆叠来生成竖直的单个数组。

数组分割

numpy.split(ary, indices_or_sections, axis)

该函数沿特定的轴将数组分割为子数组。函数接受三个参数:

  1. ary:被分割的输入数组。
  2. indices_or_sections:可以是整数,表明要从输入数组创建的,等大小的子数组的数量。 如果此参数是一维数组,则其元素表明要创建新子数组的点。
  3. axis:默认为 0。
numpy.hsplit

numpy.hsplit是split()函数的特例,其中轴为 1 表示水平分割,无论输入数组的维度是什么。

numpy.vsplit

numpy.vsplit是split()函数的特例,其中轴为 0 表示竖直分割,无论输入数组的维度是什么。

添加/删除元素

numpy.resize(arr, shape)

此函数返回指定大小的新数组。 如果新大小大于原始大小,则包含原始数组中的元素的重复副本。 该函数接受以下参数:

  1. arr:要修改大小的输入数组。
  2. shape:返回数组的新形状。
numpy.append(arr, values, axis)

此函数在输入数组的末尾添加值。 附加操作不是原地的,而是分配新的数组。 此外,输入数组的维度必须匹配否则将生成ValueError。

  1. arr:输入数组。
  2. values:要向arr添加的值,比如和arr形状相同(除了要添加的轴)。
  3. axis:沿着它完成操作的轴。如果没有提供,两个参数都会被展开。
numpy.insert(arr, obj, values, axis)

此函数在给定索引之前,沿给定轴在输入数组中插入值。 如果值的类型转换为要插入,则它与输入数组不同。 插入没有原地的,函数会返回一个新数组。 此外,如果未提供轴,则输入数组会被展开。

  1. arr:输入数组。
  2. obj:在其之前插入值的索引。
  3. values:要插入的值。
  4. axis:沿着它插入的轴,如果未提供,则输入数组会被展开。
Numpy.delete(arr, obj, axis)

此函数返回从输入数组中删除指定子数组的新数组。 与insert()函数的情况一样,如果未提供轴参数,则输入数组将展开。 该函数接受以下参数:

  1. arr:输入数组。
  2. obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组。
  3. axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开。
numpy.unique(arr, return_index, return_inverse, return_counts)

此函数返回输入数组中的去重元素数组。 该函数能够返回一个元组,包含去重数组和相关索引的数组。 索引的性质取决于函数调用中返回参数的类型。

  1. arr:输入数组,如果不是一维数组则会展开。
  2. return_index:如果为true,返回输入数组中的元素下标。
  3. return_inverse:如果为true,返回去重数组的下标,它可以用于重构输入数组。
  4. return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数。

NumPy位操作

np.bitwise_and()

对输入数组中的整数的二进制表示的相应位执行位与运算。

np.bitwise_or()

对输入数组中的整数的二进制表示的相应位执行位或运算。

np.invert()

计算输入数组中整数的位非结果。 对于有符号整数,返回补码。

numpy.left shift()

将数组元素的二进制表示中的位向左移动到指定位置,右侧附加相等数量的 0。

numpy.right_shift()

将数组元素的二进制表示中的位向右移动到指定位置,左侧附加相等数量的 0。

NumPy字符串函数

numpy.char.add()

函数执行按元素的字符串连接。

numpy.char.multiply()

这个函数执行多重连接。

numpy.char.center(arr, width,fillchar)

此函数返回所需宽度的数组,以便输入字符串位于中心,并使用fillchar在左侧和右侧进行填充。

numpy.char.capitalize()

函数返回字符串的副本,其中第一个字母大写

numpy.char.title()

返回输入字符串的按元素标题转换版本,其中每个单词的首字母都大写。

numpy.char.lower()

函数返回一个数组,其元素转换为小写。

numpy.char.upper()

函数返回一个数组,其元素转换为大写。

numpy.char.split(arr,sep = '')

此函数返回输入字符串中的单词列表。 默认情况下,空格用作分隔符。 否则,指定的分隔符字符用于分割字符串

numpy.char.splitlines()

函数返回数组中元素的单词列表,以换行符分割。

numpy.char.strip(arr,char)

函数返回数组的副本,其中元素移除了开头或结尾处的特定字符。

numpy.char.join()

这个函数返回一个字符串,其中单个字符由特定的分隔符连接。

numpy.char.replace()

这个函数返回字符串副本,其中所有字符序列的出现位置都被另一个给定的字符序列取代。

numpy.char.decode()

numpy.char.encode()

NumPy数学算数函数

三角函数

numpy.sin()
numpy.cos()
numpy.tan()
numpy.arcsin()
numpy.arccos()
numpy.arctan()

舍入函数

numpy.around(a,decimals=0)

这个函数返回四舍五入到所需精度的值。 该函数接受以下参数:

  1. a:数组
  2. decimals:要舍入的小数位数。如果为负,整数将四舍五入到小数点左侧的位置。
numpy.floor()

此函数返回不大于输入参数的最大整数。

numpy.ceil()

此函数返回输入值的上限。

算数运算

numpy.add()
numpy.subtract()
numpy.multiply()
numpy.devide()

numpy.reciprocal()

此函数返回参数逐元素的倒数。

numpy.power()

此函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

numpy.mod()

此函数返回输入数组中相应元素的除法余数。 

numpy.real()

返回复数类型参数的实部。

numpy.imag()

返回复数类型参数的虚部。

numpy.conj()

返回通过改变虚部的符号而获得的共轭复数。

numpy.angle(degree)

返回复数参数的角度。 参数:

degree: 如果为true,返回的角度以角度制来表示,否则为以弧度制来表示。

NumPy统计函数

numpy.amin()

从给定数组中的元素沿指定轴返回最小值。

numpy.amax()

从给定数组中的元素沿指定轴返回最大值。

numpy.ptp()

返回沿轴的值的范围(最大值 - 最小值)。

numpy.percentile(a, q, axis)

百分位数是统计中使用的度量,表示小于这个值得观察值占某个百分比。接受以下参数:

  1. a:输入数组
  2. q:要计算的百分位数
  3. axis:沿着它计算百分位数的轴
numpy.median()

中值定义为将数据样本的上半部分与下半部分分开的值。 

numpy.mean()

算术平均值是沿轴的元素的总和除以元素的数量。 

numpy.average(weights)

加权平均值是由每个分量乘以反映其重要性的因子得到的平均值。

numpy.std()

标准差

numpy.var()

方差

NumPy - 排序、搜索和计数函数

numpy.sort(a, axis, kind='quicksort', order)

函数返回输入数组的排序副本。 它有以下参数:

  1. a:要排序的数组
  2. axis:沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序
  3. kind:'mergesort'(归并排序)、'quicksort'(快速排序)、'heapsort'(堆排序)
  4. order:如果数组包含字段,则是要排序的字段
numpy.argsort()

对输入数组沿给定轴执行间接排序,并使用指定排序类型返回数据的索引数组。 这个索引数组用于构造排序后的数组。

numpy.lexsort()

用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。
 

numpy.argmax()

沿给定轴返回最大元素的索引。

numpy.argmin()

沿给定轴返回最小元素的索引。

numpy.nonzero()

返回输入数组中非零元素的索引。

numpy.where()

返回输入数组中满足给定条件的元素的索引。

numpy.extract()

函数根据某个条件从数组中抽取元素,返回满条件的元素。

NumPy - 字节交换

numpy.ndarray.byteswap()

NumPy副本和视图

无复制

视图或浅复制

ndarray.view()

它是一个新的数组对象,并可查看原始数组的相同数据。

ndarray.copy()

函数创建一个深层副本。 它是数组及其数据的完整副本,不与原始数组共享。

NumPy矩阵库

numpy.matlib.empty(shape, dtype, order)

函数返回一个新的矩阵,而不初始化元素。 该函数接受以下参数。

  1. shape:定义新矩阵形状的整数或整数元组
  2. Dtype:可选,输出的数据类型
  3. order: C(行序优先) 或者 F(列序优先)
numpy.matlib.zeros()

此函数返回以零填充的矩阵。

numpy.matlib.ones()

此函数返回以一填充的矩阵。

numpy.matlib.eye(n, M=n,k, dtype)

这个函数返回一个矩阵,对角线元素为 1,其他位置为零。 该函数接受以下参数:

  1. n:返回矩阵的行数
  2. M:返回矩阵的列数
  3. k:对角线的索引
  4. dtype:输出的数据类型
numpy.matlib.identity()

返回给定大小的单位矩阵。单位矩阵是主对角线元素都为 1 的方阵。

numpy.matlib.rand()

numpy.matlib.rand()`函数返回给定大小的填充随机值的矩阵。

NumPy线性代数

numpy.dot()

对于二维向量,其等效于矩阵乘法。 对于一维数组,它是向量的内积。 对于 N 维数组,它是a的最后一个轴上的和与b的倒数第二个轴的乘积。

numpy.vdot()

此函数返回两个向量的点积。

numpy.inner()

此函数返回一维数组的向量内积。 对于更高的维度,它返回最后一个轴上的和的乘积。

numpy.matmul()

函数返回两个数组的矩阵乘积。 虽然它返回二维数组的正常乘积,但如果任一参数的维数大于2,则将其视为存在于最后两个索引的矩阵的栈,并进行相应广播。另一方面,如果任一参数是一维数组,则通过在其维度上附加 1 来将其提升为矩阵,并在乘法之后被去除。

numpy.linalg.det()

计算输入矩阵的行列式。

numpy.linalg.solve()

函数给出了矩阵形式的线性方程的解。

numpy.linalg.inv()

计算矩阵的乘法逆矩阵。

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值