NumPy教程(快速入门版)
文章平均质量分 66
睿科知识云
中国航天科工信息系统项目管理高级工程师
取得法律职业资格证书
希望和大家一起学习一起进步
展开
-
NumPy和Matplotlib绘图
NumPy和Matplotlib绘图Matplotlib 是 Python 的绘图库,它经常与 NumPy 一起使用,从而提供一种能够代替 Matlab 的方案。不仅如此 Matplotlib 还可以与 PyQt 和 wxPython 等图形工具包一起使用。Matplotlib 最初由 John D. Hunter 编写,目前,它的最新的版本是 3.3.1,最后一个支持 Python 2 的版本是 2.2.5 。您可以通过 Python 包管理器 pip 来安装 Matplotlib,命令如下:pip原创 2022-04-15 12:22:37 · 3797 阅读 · 0 评论 -
NumPy IO操作
NumPy IO操作NumPy IO 操作是以文件的形式从磁盘中加载 ndarray 对象。在这个过程中,NumPy 可以两种文件类型处理 ndarray 对象,一类是二进制文件(以.npy结尾),另一类是普通文本文件。上述两种文件格式,分别对应着不同的 IO 方法,如下所示:NumPy IO操作方法文件类型处理方法二进制文件load() 和 save()普通文本文件loadtxt() 和 savetxt()我们知道,文件会被保存在不同的计算机上(比如 Linu原创 2022-04-15 12:14:21 · 426 阅读 · 0 评论 -
NumPy矩阵乘法
NumPy矩阵乘法矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,如下图所示:注意:必须确保第一个矩阵中的行数等于第二个矩阵中的列数,否则不能进行矩阵乘法运算。图1:矩阵乘法矩阵乘法运算被称为向量化操作,向量化的主要目的是减少使用的 for 循环次数或者根本不使用。这样做的目的是为了加速程序的计算。下面介绍 NumPy 提供的三种矩阵乘法,从而进一步加深对矩阵乘法的理解。逐元素矩阵乘法multiple() 函数用于两个矩阵的逐元素乘法原创 2022-04-15 12:10:47 · 13226 阅读 · 3 评论 -
NumPy线性代数
NumPy线性代数NumPy 提供了 numpy.linalg 模块,该模块中包含了一些常用的线性代数计算方法,下面对常用函数做简单介绍:NumPy线性代数函数函数名称描述说明dot两个数组的点积。vdot两个向量的点积。inner两个数组的内积。matmul两个数组的矩阵积。det计算输入矩阵的行列式。solve求解线性矩阵方程。inv计算矩阵的逆矩阵,逆矩阵与原始矩阵相乘,会得到单位矩阵。numpy.dot()按照矩阵的原创 2022-04-15 12:07:51 · 973 阅读 · 0 评论 -
NumPy Matrix矩阵库
NumPy Matrix矩阵库NumPy 提供了一个 矩阵库模块numpy.matlib,该模块中的函数返回的是一个 matrix 对象,而非 ndarray 对象。矩阵由 m 行 n 列(m*n)元素排列而成,矩阵中的元素可以是数字、符号或数学公式等。matlib.empty()matlib.empty() 返回一个空矩阵,所以它的创建速度非常快。numpy.matlib.empty(shape, dtype, order)该函数的参数说明如下:shape:以元组的形式指定矩阵的形状。dt原创 2022-04-15 12:02:14 · 614 阅读 · 0 评论 -
NumPy字节交换
NumPy字节交换数据以字节的形式存储在计算机内存中,而存储规则可分为两类,即小端字节序与大端字节序。小端字节序(little-endian),表示低位字节排放在内存的低地址端,高位字节排放在高地址段,它与大端字节序(big-endian)恰好相反。对于二进制数 0x12345678,假设从地址 0x4000 开始存放,在大端和小端模式下,它们的字节排列顺序,如下所示:图1:字节存储模式小端存储后:0x78563412 大端存储后:0x12345678。numpy.ndarray.bytes原创 2022-04-15 11:58:10 · 343 阅读 · 0 评论 -
NumPy副本和视图
NumPy副本和视图对 NumPy 数组执行些函数操作时,其中一部分函数会返回数组的副本,而另一部分函数则返回数组的视图。本节对数组的副本和视图做重点讲解。其实从内存角度来说,副本就是对原数组进行深拷贝,新产生的副本与原数组具有不同的存储位置。而视图可理解为对数组的引用,它和原数组有着相同的内存位置。赋值操作赋值操作是数组引用的一种方法。比如,将 a 数组赋值给变量 b,被赋值后的变量 b 与 a 组具有相同的内存 id。因此,无论操作 a、b 中哪个数组,另一个数组也会受到影响。例如下:impo原创 2022-04-14 12:57:28 · 301 阅读 · 0 评论 -
NumPy排序和搜索功能
NumPy排序和搜索功能NumPy 提供了多种排序函数, 这些排序函数可以实现不同的排序算法。排序算法特征主要体现在以下四个方面:执行速度,最坏情况下的复杂度,所需的工作空间以及算法的稳定性。下表列举了三种排序算法:NumPy排序算法种类速度最坏复杂度工作空间稳定性quicksort(快速排序)1O(n^2)0不稳定mergesort(归并排序)2O(n * log(n))~n/2稳定heapsort(堆排序)3O(n * log(n))0原创 2022-04-14 12:54:27 · 90 阅读 · 0 评论 -
NumPy统计函数
NumPy统计函数NumPy 提供了许多统计功能的函数,比如查找数组元素的最值、百分位数、方差以及标准差等。numpy.amin() 和 numpy.amax()这两个函数用于计算数组沿指定轴的最小值与最大值:amin() 沿指定的轴,查找数组中元素的最小值,并以数组形式返回;amax() 沿指定的轴,查找数组中元素的最大值,并以数组形式返回。对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。图1:axis轴示例如下:import numpy as np原创 2022-04-14 12:48:54 · 839 阅读 · 0 评论 -
NumPy算术运算
NumPy算术运算NumPy 数组的“加减乘除”算术运算,分别对应 add()、subtract()、multiple() 以及 divide() 函数。注意:做算术运算时,输入数组必须具有相同的形状,或者符合数组的广播规则,才可以执行运算。下面看一组示例:import numpy as npa = np.arange(9, dtype = np.float_).reshape(3,3)#数组aprint(a)#数组bb = np.array([10,10,10])print(b)原创 2022-04-14 12:42:56 · 1964 阅读 · 0 评论 -
NumPy数学函数
NumPy数学函数NumPy 中包含了大量的数学函数,它们用于执行各种数学运算,其中包括三角函数、舍入函数等等。下面对它们做详细讲解。三角函数NumPy 中提供了用于弧度计算的的 sin()(正弦)、cos()(余弦)和 tan()(正切)三角函数。示例如下:import numpy as np arr = np.array([0, 30, 60, 90, 120, 150, 180]) #计算arr数组中给定角度的三角函数值#通过乘以np.pi/180将其转换为弧度print(np.si原创 2022-04-14 12:37:21 · 1420 阅读 · 0 评论 -
NumPy字符串处理函数
NumPy字符串处理函数NumPy 提供了许多字符串处理函数,它们被定义在用于处理字符串数组的 numpy.char 这个类中,这些函数的操作对象是 string_ 或者 unicode_ 字符串数组。如下表所示:NumPy处理字符串数组函数函数名称描述add()对两个数组相应位置的字符串做连接操作。multiply()返回多个字符串副本,比如将字符串“ hello”乘以3,则返回字符串“ hello hello hello”。center()用于居中字符串,并将原创 2022-04-14 12:33:57 · 1346 阅读 · 0 评论 -
NumPy位运算
NumPy位运算本节重点讲解 NumPy 的位运算,NumPy 中提供了以下按位运算函数:numpy按位运算函数序号函数位运算符描述说明1bitwise_and&计算数组元素之间的按位与运算。2bitwise_orI计算数组元素之间的按位或运算。3invert~计算数组元素之间的按位取反运算。4left_shift<<将二进制数的位数向左移。5right_shift>>将二进制数的位数向右移。原创 2022-04-14 12:22:39 · 923 阅读 · 0 评论 -
NumPy数组元素增删改查
NumPy数组元素增删改查本节重点介绍 NumPy 数组元素的增删改查操作,主要有以下方法:数组元素操作方法函数名称描述说明resize返回指定形状的新数组。append将元素值添加到数组的末尾。insert沿规定的轴将元素值插入到指定的元素前。delete删掉某个轴上的子数组,并返回删除后的新数组。argwhere返回数组内符合条件的元素的索引值。unique用于删除数组中重复的元素,并按元素值由大到小返回一个新数组。1. nump原创 2022-04-14 12:14:12 · 1687 阅读 · 0 评论 -
NumPy相关数组操作
NumPy相关数组操作NumPy 中包含了一些处理数组的常用方法,大致可分为以下几类:**数组变维操作数组转置操作修改数组维度操作连接与分割数组操作**下面分别对它们进行介绍。数组变维操作数组变维操作函数名称函数介绍reshape在不改变数组元素的条件下,修改数组的形状。flat返回是一个迭代器,可以用 for 循环遍历其中的每一个元素。flatten以一维数组的形式返回一份数组的副本,对副本的操作不会影响到原数组。ravel返回一个连续的扁平原创 2022-04-14 12:06:41 · 307 阅读 · 0 评论 -
NumPy遍历数组
NumPy遍历数组NumPy 提供了一个 nditer 迭代器对象,它可以配合 for 循环完成对数组元素的遍历。下面看一组示例,使用 arange() 函数创建一个 3*4 数组,并使用 nditer 生成迭代器对象。示例1:import numpy as npa = np.arange(0,60,5)a = a.reshape(3,4)#使用nditer迭代器,并使用for进行遍历for x in np.nditer(a): print(x)输出结果:0 5 10 15 20原创 2022-04-14 11:51:19 · 3465 阅读 · 1 评论 -
NumPy广播机制
NumPy广播机制NumPy 中的广播机制(Broadcast)旨在解决不同形状数组之间的算术运算问题。我们知道,如果进行运算的两个数组形状完全相同,它们直接可以做相应的运算。示例如下:import numpy as npa = np.array([0.1,0.2,0.3,0.4])b = np.array([10,20,30,40])c = a * bprint(c)输出结果如下:[ 1. 4. 9. 16.]但如果两个形状不同的数组呢?它们之间就不能做算术运算了吗?当然不是!为原创 2022-04-08 12:33:37 · 4195 阅读 · 0 评论 -
NumPy高级索引
NumPy高级索引NumPy 与 Python 的内置序列相比,它提供了更多的索引方式。除了在前一节用到索引方式外,在 NumPy 中还可以使用高级索引方式,比如整数数组索引、布尔索引以及花式索引,本节主要对上述三种索引方式做详细介绍。高级索引返回的是数组的副本(深拷贝),而切片操作返回的是数组视图(浅拷贝)。1. 整数数组索引整数数组索引,它可以选择数组中的任意一个元素,比如,选择第几行第几列的某个元素,示例如下:import numpy as np#创建二维数组x = np.array([原创 2022-04-08 12:32:00 · 511 阅读 · 0 评论 -
Numpy索引和切片
Numpy索引和切片在 NumPy 中,如果想要访问,或修改数组中的元素,您可以采用索引或切片的方式,比如使用从 0 开始的索引依次访问数组中的元素,这与 Python 的 list 列表是相同的。NumPy 提供了多种类型的索引方式,常用方式有两种:基本切片与高级索引。本节重点讲解基本切片。基本切片NumPy 内置函数 slice() 可以用来构造切片对象,该函数需要传递三个参数值分别是 start(起始索引)、stop(终止索引) 和 step(步长) ,通过它可以实现从原数组的上切割出一个新数原创 2022-04-08 12:28:14 · 1134 阅读 · 0 评论 -
NumPy创建区间数组
NumPy创建区间数组所谓区间数组,是指数组元素的取值位于某个范围内,并且数组元素之间可能会呈现某种规律,比如等比数列、递增、递减等。为了方便科学计算,Python NumPy 支持创建区间数组。1. numpy.arange()在 NumPy 中,您可以使用 arange() 来创建给定数值范围的数组,语法格式如下:numpy.arange(start, stop, step, dtype)参数说明见下表:参数描述参数名称参数说明start起始值,默认是 0。原创 2022-04-08 12:24:57 · 1537 阅读 · 0 评论 -
NumPy数组属性
NumPy数组属性本节介绍 Numpy 数组的常用属性。ndarray.shapeshape 属性的返回值一个由数组维度构成的元组,比如 2 行 3 列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的大小。示例如下,输出了数组的维度:import numpy as npa = np.array([[2,4,6],[3,5,7]])print(a.shape)输出结果:(2,3)通过 shape 属性修改数组的形状大小:import numpy as npa = np.原创 2022-04-08 12:13:24 · 1135 阅读 · 0 评论 -
NumPy数据类型
NumPy数据类型NumPy 作为 Python 的扩展包,它提供了比 Python 更加丰富的数据类型,如表 1 所示:表1:NumPy数据类型序号数据类型语言描述1bool_布尔型数据类型(True 或者 False)2int_默认整数类型,类似于 C 语言中的 long,取值为 int32 或 int643intc和 C 语言的 int 类型一样,一般是 int32 或 int 644intp用于索引的整数类型(类似于 C 的 ssize_原创 2022-04-08 12:08:11 · 1699 阅读 · 0 评论 -
NumPy ndarray对象
NumPy ndarray对象NumPy 定义了一个 n 维数组对象,简称 ndarray 对象,它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有大小相同的内存块,您可以使用索引或切片的方式获取数组中的每个元素。ndarray 对象有一个 dtype 属性,该属性用来描述元素的数据类型,相关知识会在之后章节做详细介绍 。ndarray 对象采用了数组的索引机制,将数组中的每个元素映射到内存块上,并且按照一定的布局对内存块进行排列,常用的布局方式有两种,即按行或者按列。创建ndarra原创 2022-04-08 12:01:29 · 863 阅读 · 0 评论 -
NumPy下载与安装
NumPy下载与安装NumPy 是 Python 的第三方扩展包,但它并没有包含在 Python 标准库中,因此您需要单独安装它。本节介绍如何在不同的操作系统上安装 NumPy。Windows系统安装在 Windows 系统下安装 NumPy 有两种常用方式,下面分别对其进行介绍。使用 Python 包管理器pip来安装 NumPy,是一种最简单、最轻量级的方法。只需执行以下命令即可:pip install numpy 在实际项目中, NumPy 通常与 SciPy 程序包一起使用,SciP原创 2022-04-08 11:57:18 · 28394 阅读 · 0 评论 -
NumPy是什么
NumPy是什么NumPy 的全称是“ Numeric Python”,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组。在数组算术计算方面, NumPy 提供了大量的数学函数。NumPy 的底层主要用 C语言编写,因此它能够高速地执行数值计算。NumPy 还提供了多种数据结构,这些数据结构能够非常契合的应用在数组和矩阵的运算上。NumPy图标NumPy 的前身是 Numeric 程序包,该包由 Jim Hugunin 开发,在这之后,他还开发了另一个类似的的程序包 Numar原创 2022-04-08 11:53:13 · 5449 阅读 · 0 评论