Numpy(3/3):进阶知识

NumPy进阶教程——超详细 文章目录Numpy基础教程链接一.ndarray对象内幕1.1 Numpy dtype 层次结构二.高阶数组操作2.1重塑数组2.2 C顺序和Fortran顺序2.3 连接和分隔数组2.31堆叠助手:r_和c_2.4 重复元素: tile和repeat2.5 神奇索引的等价方法:take和put三.广播3.1 在其他轴上广播3.2通过广播设定数组的值四. 高阶ufunc用法4.1 ufunc实例方法4.2使用python编写新的ufunc方法五.结构化和记录数组5.1 嵌套dtype和多维字段5.2 为什么 阅读详情

目录

一、NumPy 排序、条件刷选函数

二、NumPy 字节交换

三、NumPy 副本和视图

四、NumPy 矩阵库(Matrix)

五、NumPy 线性代数

六、NumPy IO

七、NumPy Matplotlib


一、NumPy 排序、条件刷选函数

 

numpy.argsort() 函数返回的是数组值从小到大的索引值。 

numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。这里举一个应用场景:小升初考试,重点班录取学生按照总成绩录取。在总成绩相同时,数学成绩高的优先录取,在总成绩和数学成绩都相同时,按照英语成绩录取…… 这里,总成绩排在电子表格的最后一列,数学成绩在倒数第二列,英语成绩在倒数第三列。

numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。

numpy.nonzero() 函数返回输入数组中非零元素的索引。

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

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

import numpy as np 
 
x = np.arange(9.).reshape(3,  3)  
print ('我们的数组是:')
print (x)
# 定义条件, 选择偶数元素
condition = np.mod(x,2)  ==  0  
print ('按元素的条件值:')
print (condition)
print ('使用条件提取元素:')
print (np.extract(condition, x))

二、NumPy 字节交换

略

三、NumPy 副本和视图

副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不在同一位置。

视图是数据的一个别称或引用,通过该别称或引用亦便可访问、操作原有数据,但原有数据不会产生拷贝。如果我们对视图进行修改,它会影响到原始数据,物理内存在同一位置。

视图一般发生在:

  • 1、numpy 的切片操作返回原数据的视图。
  • 2、调用 ndarray 的 view() 函数产生一个视图。

副本一般发生在:

  • Python 序列的切片操作,调用deepCopy()函数。
  • 调用 ndarray 的 copy() 函数产生一个副本。

四、NumPy 矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

转置矩阵:NumPy 中除了可以使用 numpy.transpose 函数来对换数组的维度,还可以使用 T 属性。

import numpy as np
 
a = np.arange(12).reshape(3,4)
 
print ('原数组:')
print (a)
print ('\n')
 
print ('转置数组:')
print (a.T)

matlib.empty() 函数返回一个新的矩阵,语法格式为:

import numpy.matlib 
import numpy as np
 
print (np.matlib.empty((2,2)))
# 填充为随机数据

numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。

numpy.matlib.ones()函数创建一个以 1 填充的矩阵。

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零,不一定是方阵。

numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。

numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。

矩阵总是二维的,而 ndarray 是一个 n 维数组。 两个对象都是可互换的。

五、NumPy 线性代数

numpy.matmul和dot不同点:

numpy.dot() 对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称之为内积);对于二维数组,计算的是两个数组的矩阵乘积;对于多维数组,它的通用计算公式如下,即结果数组中的每个元素都是:数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和: dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])。

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

六、NumPy IO

 

 

 

七、NumPy Matplotlib

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()

 关于绘图库的更多知识建议单独学习。

【NumPy基础】100道numpy练习——进阶篇 选自numpy-100,当作熟悉NumPy的练习。NumPy只是一个数值计算的工具包,在实际的算法实现中来熟悉NumPy才是有效的,因此后面不打算继续写了,到此文为止,基本的语 阅读详情

相关推荐

Numpy基础入门知识点总结

NumPy的基础入门知识

Xx_Studying的博客 2561

NumPy 排序、条件刷选函数

NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。 numpy.sort() numpy.sort() 函数返回输入数组的排序副本。函数格式如下: 参数说明: a: 要排序的数组 axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按...

错位的梦寐的博客 436

【educoder】Numpy进阶

> Numpy 是 Python 语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy 内部解除了 Python 的 PIL (全局解释器锁),运算效率极好,是大量机器学习框架的基础库! > 本实训需要学员掌握 Python 的基本知识,了解 Numpy 的数据类型以及数组数组属性。

weixin_44787324的博客 2548

NumPy 矩阵库 numpy.matlib

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。 一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列。 矩阵里的元素可以是数字、符号或数学式。以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵: matlib.empty() matlib.empty() 函数返回一个新的矩阵,语法格式为: numpy.matlib.empty(shape, dtype, order) 参数说明: shape: 定义新矩阵形

gaocui883的博客 2746

Numpy知识点大总结

Numpy学习笔记1 Numpy介绍 1 Numpy介绍 numpy是高性能科学计算和数据分析的基础包 ndarray:一个具有矢量算术和复杂广播能力的快速且节省空间的多维数组 对整数数据进行快速运算的标准数学函数 用于读写磁盘数据的工具以及用于操作内存映射文件的工具 ...

蹦跶跶 1639

故障转移集群无法连接到节点_Windows 2012系统群集故障转移集群

理论知识很重要!集群和群集是什么意思?其实看到标题可能会感觉有点绕,简单易懂的来说一下:集群,英文名称为Cluster,集群的意思就是将多个系统连接在一起,可以让多台服务器能够像一台服务器那样工作。通常采用集群系统是为了提高系统的稳定性和网络中心的数据处理能力以及服务能力。第二个就是:群集,其实这个概念也不难理解,群集是把多个计算机连接在一起,形成整形,随后可以更好的利用设备资源的一项新...

weixin_39535283的博客 3250

python 矩阵库_NumPy - 矩阵库( Matrix Library)

NumPy - 矩阵库( Matrix Library)NumPy包中包含一个Matrix库numpy.matlib 。 该模块具有返回矩阵而不是ndarray对象的函数。matlib.empty()matlib.empty()函数返回一个新矩阵而不初始化条目。 该函数采用以下参数。numpy.matlib.empty(shape, dtype, order)Where,Sr.No.参数和描...

weixin_30697511的博客 1287

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

python的numpy matlib

import numpy.matlib import numpy as np a = np.array([[1, 2], [3, 4]]) b = np.array([[11, 12], [13, 14]]) print(np.dot(a, b)) [[37 40] [85 92]] dot()返回的是两个数组的点积(dot product) a = np.array([[1,...

wangprince2017 819

从婴儿学步到工业级应用:VLA的‘隐式标定‘原理通俗图解

本文深入解析VLA(Vision-Language-Action)模型的'隐式标定'原理,通过类比婴儿学习机制,揭示其如何替代传统手眼标定技术。文章对比了工业机器人传统标定与VLA数据驱动方法的差异,并可视化神经网络注意力机制,展示其在空间关系编码上的突破性进展。最后探讨了VLA在工业应用中的优势与混合架构解决方案。

pz890123456的博客 324

深入浅出一文搞懂Raft协议

前言 在分布式的世界里,要说最核心最复杂的功能,一致性的实现无出其右,之前的paxos算法堪称经典,被认为是同类算法中效果最好的,基本上成为分布式一致性的代名词,但是paxos算法也是出了名的难理解,而且相当不好实现。本人也花了很多时间、看了很多材料也没有真正理解。所以基于paxos的思想进行的一致性算法的简化和实现就成为了现实的需求,在此背景下,本文的主角Raft就出现了。 Raft算法的头号目标就是容易理解(UnderStandable),这从论文中就可以看出来。当然,R...

microGP的专栏 6485

python学习之numpy的使用

numpy主要模块如下: numpy.linalg 支持线性代数的各种功能 numpy.fft 支持离散傅里叶变换 numpy.matlib 返回矩阵对象 numpy.random 支持随机数,随机排列组合的生成 numpy.linalg的部分函数如下: numpy.linalg.eig() 计算方阵的特征值和特征向量 numpy.linalg.d...

qq_34844710的博客 880

永磁同步电机矢量控制——从三相静止坐标系到d-q坐标系的数学转换

本文深入解析了永磁同步电机矢量控制的核心——从三相静止坐标系到d-q旋转坐标系的数学转换。通过Clark变换和Park变换,将复杂的三相交流系统解耦为易于控制的直流量,从而实现对电机转矩和磁场的独立、精准控制。文章结合物理图像与工程实践,详细阐述了坐标变换的原理、公式推导及其在磁场定向控制(FOC)中的关键作用。

weixin_29294395的博客 119

【数分】Numpy入门及进阶(四)

【注意!!!本章主要讲解数据分析、挖掘入门及进阶知识- 通过多篇文章【文字+案例】的形式系统化进行描述- 大家喜欢可以订阅一下,不收费用的前言:- 本文主要从Numpy进阶进行描述,主要包括Numpy数组操作、Numpy 数学函数 以及Numpy 查找和排序 知识点进行描述。

2201_75422674的博客 1233

VS(QT)调用Matlab函数的方法

调试–>窗口–>异常设置–>Win32 Exceptions全部不要勾选。选择Microsoft Visual C++ 2017。将生成的.h和.lib分别放置在对应的文件夹。输入mex -setup C++输入deploytool选择。选择Realse x64。

woshigaowei5146的博客 591

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2033

【NumPy第二期:深入学习NumPy:切片、索引与数组操作进阶】

本文聚焦 NumPy 中切片、索引、广播、数组迭代及位运算等核心进阶知识。从基础切片索引的灵活取值,到高级索引的复杂数据筛选,再到广播机制简化不同形状数组运算、迭代数组高效遍历元素,以及位运算拓展数值操作场景,结合丰富代码示例与清晰原理阐释,帮助读者扎实掌握 NumPy 进阶用法,解锁高效数据处理与科学计算技能。

qq_45832651的博客 1098

手把手教你学BSP(11.3)--BSP实例:基于Raspberry Pi 4 Model B的Linux BSP开发实例

通过以上步骤,我们完成了一个基于Raspberry Pi 4 Model B的Linux BSP开发过程,包括硬件初始化、设备驱动编写、Bootloader配置、内核配置和编译,以及最终映像的生成。每个步骤都非常重要,确保每一步都正确无误才能使整个系统正常运行。

MHD0815的博客 1011

深入探索NumPy:numpy进阶(数组操作、常用方法)

本文深入探讨了NumPy这一强大的科学计算库,着重介绍了其高级数组操作、常用方法以及与其他科学计算库的整合。通过学习广播、高级索引、多维数组操作、线性代数、数组的合并与拆分、性能优化等方面的技术,读者能够更灵活地处理数据、提高代码效率。同时,本文强调了NumPy在多平台上的支持,包括Windows、Linux和macOS,使其更具适用性。在实际应用中,学习者可通过持续学习和实践,深化对NumPy的理解,不断提高数据处理和科学计算的技能。

一键难忘的博客 3948

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python进阶—Numpy

Numpy 再来一遍 文章目录一、Numpy的属性二、创建array三、Numpy的运算四、随机数生成及矩阵的统计五、Numpy索引六、合并七、分割八、深浅拷贝 配合机器学习食用更佳。 import numpy as np 一、Numpy的属性 ndim 维度 shape 形状 dtype 类型 size 大小 array = np.array([[1,2,3], [4,5,6]]) print(array) [[1 2 3] [4 5 6]] print(.

厚积而薄发 2928

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Numpy进阶第3关:Numpy迭代数组

本关任务:利用本关相关知识,将一个ndarray类型的数组,顺时针旋转90度后输出。 相关知识 NumPy迭代器对象numpy.nditer提供了一种灵活访问一个或者多个数组元素的方式。利用nditer对象可以实现完成访问数组中的每一个元素,这项最基本的功能,使用标准的Python迭代器接口,可以逐个访问每一个元素。 In : x = np.arange(6).reshape(2, 3) In :...

qq_46318765的博客 4430

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python进阶:NumPy学习

目录一级目录二级目录三级目录一、NumPy 简介 一级目录 二级目录 三级目录 一、NumPy 简介

qq_40468470的博客 3837

【数分】Numpy入门及进阶(一)

本章主要通过多篇文章【文字+案例】的形式系统化进行描述讲解Numpy入门及进阶知识,包括但不限于其简介、四个基本属性、创建ndarry等知识点。

2201_75422674的博客 1142

Numpy基础知识

Numpy学习笔记 Numpy介绍 NumPy,是Numerical Python的简称,它是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语。 以下内容将会出现在NumPy中: 基本内容 ndarray,一种高效多维数组,提供了基于数组的便捷算术操作以及灵活的广播功能 对所有数据进行快速的矩阵计算,而无须编写循环程序 对硬盘中数组数据进行读写的工具,并对内存映射文件进行操作 线性代数、随机数

FORxinchendahai的博客 1392

Numpy 进阶

默认情况下,nditer 将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值的修改,必须将可选参数 op_flags 指定为 read-write 或者 write-only 的模式。对数组的算术运算通常在相应的元素上进行,当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。首先用 arange() 生成一个数组,然后用 reshape() 方法,将数组切换成 4x3 的形状,最后再与 basearray 相加,输出它们的和。

2301_77225918的博客 1061

【数分】Numpy入门及进阶(三)

【注意!!!本章主要讲解数据分析、挖掘入门及进阶知识- 通过多篇文章【文字+案例】的形式系统化进行描述- 大家喜欢可以订阅一下,不收费用的前言:- 本文主要从Numpy入门进行描述,只要包括ndarry的读写操作以及ndarry的聚合操作知识点。

2201_75422674的博客 1283
上一篇: Numpy(2/3):数组基本操作
下一篇: Pandas
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值