Python:处理矩阵之NumPy库(中)

目录

        前言

        1.onse函数

        2.diag函数

        3.random函数

        4.rand函数

        5.randn函数

        6.randint函数

        7.shape函数

        8.reshape函数

        9.resize函数

        10.flatten函数

        11.hstack函数

        12.vstack函数


前言

        本文章是续《Python:处理矩阵之NumPy库(上)》的第二篇文章,也是NumPy库系列的第二篇文章。在前者对NumPy库介绍的基础上,本篇文章将继续对NumPy库的操作进行讲解


onse函数

        onse函数用于创建元素全为1的数组

onse(shape,dytpe = None,order  = 'C')
参数备注
shape代表数组尺寸,可以是数值或元组
dtype代表数组中的元素的数据类型,默认为None
order代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先

表1.onse函数参数表

_numpy.ones((2,2))
#array([[1., 1.],[1., 1.]])_numpy.ones((2,2),dtype = int)
#array([[1, 1],[1, 1]])

PS:函数onse有着zeros函数一样的特点,可参考zeros函数的总结,主要原因是由于shape代表的是数组尺寸


diag函数

        diag函数用于生成对角线为列表V的数组

diag(V,K=0)
参数备注
V代表一个一维数组时,结果形成一个以一维数组为对角线元素的二维数组;是一个二维数组时,结果为数组的对角线元素
K默认为0,可选参数。决定列表处于对角线的位置,大于零位于对角线上面,小于零则在下面

表2.diag函数参数表

_numpy.diag(([1,2,3]))
#array([[1, 0, 0],[0, 2, 0],[0, 0, 3]])_numpy.diag(([1,2,3]),k=1)
#array([[0, 1, 0, 0],[0, 0, 2, 0],[0, 0, 0, 3],[0, 0, 0, 0]])_numpy.diag(([1,2,3]),k=-1)
#array([[0, 0, 0, 0],[1, 0, 0, 0],[0, 2, 0, 0],[0, 0, 3, 0]])

random函数

        random函数用于创建元素为size的随机数组

random.random(size = None)
参数备注
size代表数组尺寸,可以是整数或者整数的元组

表3.random函数参数表

_numpy.random.random(2)    #生成一行的数组,元素为两个
#array([0.33970551, 0.03921899])_numpy.random.random((1,2))#生成一行二列的二维数组
#array([[0.06720547, 0.67036122]])

rand函数

        rand函数用于生成服从均匀分布的随机数组

random.rand(value)
参数备注
value代表数组维数,可选。默认生成一个数值,而不是数组

表4.rand函数参数表

_numpy.random.rand()    #生成一个数
#0.9012041794305755_numpy.random.rand(2)   #生成一行的数组,元素为两个
#array([0.88723514, 0.16626263])_numpy.random.rand(1,2) #生成一行二列的二维数组
#array([[0.7982949 , 0.94322369]])

randn函数

        randn函数用于生成服从正态分布的随机数组

random.randn(value)
参数备注
value代表数组维数,可选。默认生成一个数值,而不是数组

表5.randn函数参数表

_numpy.random.randn()    #生成一个数
#-0.04984522010821525_numpy.random.randn(2)   #生成一行的数组,元素为两个
#array([-0.15864059, -1.49100105])_numpy.random.randn(1,2) #生成一行二列的二维数组
#array([[-0.09911854, -2.14864424]])

randint函数

        randint函数用于生成指定范围的整型随机数

random.randint(low,high = None,size = None,dtype = '1')
参数备注
low最小值
high最大值,在含有尺寸参数时可以省略。省略后默认为生成0到最小值随机数组
size数组的尺寸
dtype输出数组的格式

表6.randint函数参数表

#随机生成在0到5(不包含5)的区间内的一个整数
np.random.randint(0,high = 5)
#4#随机生成一个元素在0到3(不包含3)的区间内的整数,且数组尺寸为10
np.random.randint(3,size = 10)
#array([0, 0, 1, 0, 0, 2, 0, 2, 0, 1])#随机生成一个元素在0到5(不包含5)的区间内的整数,且数组尺寸为一行二列
np.random.randint(0,high = 5,size = (1,2))
#array([[1, 4]])

shape函数

        shape函数用于读取矩阵的维度或修改数组尺寸

shape(value)
参数备注
value要读取的矩阵

表7.shape函数参数表

value_A = np.array([1,2,3])
_numpy.shape(value_A)    #一维数组只显示列数
#(3,)value_B = np.array([[1,2,3]])
_numpy.shape(value_B)    #二维数组显示行数和列数
#(1, 3)value_C = np.array([[[1,2,3]]])
_numpy.shape(value_C)    #二维数组显示轴,行数和列数
#(1, 1, 3)value_D = _numpy.array(((1,2,3),(4,5,6)))    #两行三列数组
#array([[1, 2, 3],[4, 5, 6]])value_D.shape = (3,2)    #修改为三行两列数组
#array([[1, 2],[3, 4],[5, 6]])

PS:使用shape函数输出维度,一维数组只输出列数,二维数组输出行数和列数,以此类推


reshape函数

        reshape函数用于修改数值形状

reshape(shape,ordef='C')
参数备注
shape代表修改后的新数组尺寸
order代表存储多维数组时,是行优先('C')还是列优先('F')。默认为'C',列优先就会把列元素优先进行排序

表8.reshape函数参数表

a = np.array(((0,1),(2,3)))
#array([[0, 1],[2, 3]])a.reshape((4,1))    #行优先
#array([[0],[1],[2],[3]])a.reshape((4,1),order = 'F')    #列优先
#array([[0],[2],[1],[3]])

resize函数

        resize函数用于修改尺寸,将多余的位置置零

resize(new_shape,refxheck = True)
参数备注
new_shape代表修改后数组的新尺寸
refcheck代表是否做引用计数检查,如果为False,则不会检查引用计数。默认值为True

表9.resize函数参数表

a = np.array(((0,1),(2,3)))
#array([[0, 1],[2, 3]])a.resize((4,1))    #行与列符合个数
#array([[0],[1],[2],[3]])a.resize((4,2),refcheck = False)
#array([[0, 1],[2, 3],[0, 0],[0, 0]])
#行与列不符合个数,refcheck置为False可为空余部分置0

PS:reshape与resize的区别在于,reshape不会因为数组元素不符合尺寸,而补充元素。resize将其参数refxheck置False时,会补充空余的位置,将位置置0


flatten函数

        flatten函数用于完成数组展平工作

flatten(order = 'C')
参数备注
order代表展平方式,沿横轴还是纵轴,默认为'C'横轴展平,'F'为沿纵轴展平

表10.flatten函数参数表

a = np.array(((0,1),(2,3)))
#array([[0, 1],[2, 3]])a.flatten()    #横轴展平
#array([0, 1, 2, 3, 0, 0, 0, 0])a.flatten(order = 'F')    #纵轴展平
#array([0, 2, 0, 0, 1, 3, 0, 0])

hstack函数

        hstack函数用于对数组进行横向合并

hstack(tup)
参数备注
tup代表要合并的数组序列

表11.hstack函数参数表

a = np.array(((0,1),(2,3)))
#array([[0, 1],[2, 3]])
b = np.array(((4,5),(6,7)))
#array([[4, 5],[6, 7]])np.hstack((a,b))    #横向合并
#array([[0, 1, 4, 5],[2, 3, 6, 7]])

vstack函数

        vstack函数用于对数组进行纵向合并

vstack(tup)
参数备注
tup代表要合并的数组序列

表12.vstack函数参数表

a = np.array(((0,1),(2,3)))
#array([[0, 1],[2, 3]])
b = np.array(((4,5),(6,7)))
#array([[4, 5],[6, 7]])np.vstack((a,b))    #纵向合并
#array([[0, 1],[2, 3],[4, 5],[6, 7]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java实现简单词法、语法分析器

1、词法分析器实现 词法分析器是编译器中的一个关键组件,用于将源代码解析成词法单元。 词法分析器的结构与组件: 通常,词法分析器由两个主要组件构成:扫描器(Scanner)和记号流(Token Stream&a…

003-两台交换机堆叠(IRF)

两台交换机堆叠(IRF) 概念 IRF (Intelligent Resilient Framework) 是华为公司提出的一种交换机堆叠技术,它允许用户将多台物理交换机设备连接在一起,从而逻辑上形成一个单一的、统一的、大容量的虚拟交换机。IRF堆叠技术通过堆…

抽象java入门1.3.1

前言: 本期内容是为了更好补充关于方法(函数)的定义 开始: 函数(function)表示每个输入值对应唯一输出值的一种对应关系。 核心在于:输入值和输出值这两个元素 真的吗? 错&…

【自动部署】4.阿里云ECS服务器 IDEA自动部署项目

如何在IDEA中,自动部署项目到阿里云ECS服务器?今天我们就来实现一键部署功能。 执行maven命令打包免密登录,在IEDA中连接服务器执行stop服务上传jar包到服务器执行start脚本查看运行日志1.安装Alibaba Cloud Toolkit 2.配置host 3.自动化部署后端 右击项目,选择Alibaba CL…

第一篇红队笔记-百靶精讲之W1R3S-john

https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip 主机发现 nmap端口扫描及思路 扫描某个网段 扫描单个ip所有端口 重复扫描单个ip具体端口 udp协议再来一次 漏洞扫描 FTP渗透 尝试匿名登陆 防止文件损坏 识别加密方式-hash-identifier base64 Web目录爆破…

C#操作MySQL从入门到精通(19)——插入数据

前言: 谈到数据库,大家最容易脱口而出的就是增删改查,在本篇文章之前一直都是说的各种查询,本文就是说的增删改查中的增,所谓增也就是增加数据的意思,插入数据就是增加数据。 本文测试使用的数据库如下: 1、插入完整行 所谓插入完整行就是一行所有列的数据都是自己插…

C++中的常见I/O方式

目录 摘要 1. 标准输入输出(Standard I/O) 2. 文件输入输出(File I/O) 3. 字符串流(String Stream) 4. 低级文件I/O(Low-level File I/O) 5. 内存映射文件(Memory-…

《精通ChatGPT:从入门到大师的Prompt指南》第4章:避免常见错误

第4章:避免常见错误 在使用ChatGPT进行Prompt编写时,常见的错误可能会大大影响生成内容的质量和准确性。本章将详细讨论这些错误,并提供如何避免它们的建议。 4.1 不明确的指令 在使用ChatGPT时,一个常见的问题是指令不够明确。…

理解数仓建模

​​​在数仓建设的过程中,由于未能完全按照规范操作, 从而导致数据仓库建设比较混乱,常见有以下问题: 数仓常见问题 ● 数仓分层不清晰:数仓的分层没有明确的逻辑,难以管理和维护。 ● 数据域划分不明确…

[数据集][目标检测]高空抛物数据集VOC+YOLO格式259张+6段视频+yolov8模型+探讨

这个是从6段简短抛物视频里面截取的259张图片用labelImg进行标注得到提供voc和yolo格式以供大家训练和研究。目录我已经提供了yolov8s训练好的模型和训练日志,如果不想训练的可以直接用我这个模型即可,选择使用best.pt或last.pt即可。目录结构&#xff1…

【网络编程开发】10.UNIX套接字域

10.UNIX套接字域 UNIX域套接字是用于在同一台计算机上运行的进程之间进行通信的一种机制。它与传统基于TCP/IP协议栈的套接字不同,UNIX域套接字操作更为高效,因为它避免了网络层的开销,不涉及网络报头、检验和、顺序号等复杂的网络协议处理过…

ANSYS APDL中使用SF和SFFUN命令,对不同节点施加不同大小的面载荷

SF命令通常是对 所选择的节点集合 施加同样大小的载荷,如: NSEL, S, LOC, Y, 5 ! 选择y坐标值为5的全部结点 SF, ALL, PRES, 1 ! 施加均布荷载 完整命令流: Finish !退出当前处理器 /Clear,al…

websocket发送数据

1. 使用JSON格式传输参数 可以使用库如Jackson或Gson来处理JSON。 客户端发送JSON消息: var socket new WebSocket("ws://localhost:8080/ws"); socket.onopen function() {var message {"action": "greet","name": …

tensorRT 自定义算子plugin的实现

文章目录 1. 自定义算子导出onnx1.1 自定义算子的实现类1.2 自定义算子类1.3 onnx导出2. 自定义算子plugin的实现2.1 Plugin类的实现2.1.1 构造函数的实现2.1.2 析构函数实现2.1.3 serialize函数的实现2.1.4 destory函数的实现2.1.5 enqueue函数的实现(关键)2.1.5.1 customSc…

C#操作MySQL从入门到精通(16)——使用子查询

前言: 我们在查询数据的过程中有时候查询的数据不是从数据库中来的,而是从另一个查询的结果来的,这时候就需要使用子查询,本文使用的测试数据如下: 1、子查询 下面的代码就是先查询地址是安徽和广西的学生年龄,然后获取年龄对应的姓名 private void button__SubQuery…

Spring boot+vue前后端分离

目录 1、前端vue的搭建 2、后端项目的构建 pom文件中引入的jar包 yml文件用来配置连接数据库和端口的设置 application.property进行一些整合 service层 imp层 mapper 实体类 额外写一个类、解决跨域问题 3、测试 1、前端vue的搭建 建立项目的过程略 开启一个建立好…

【SZUOJ】【高精度板子】E. 大整数计算(运算符重载)

被学校oj的高精度恶心到了&#xff0c;所以我觉得以后把它当板子 //??CBigInteger????? /********** Write your code here! **********/ #include<bits/stdc.h> using namespace std; class CBigInteger { public:vector<int> a;int si;CBigInteger(){si1…

用自然语言连接信息孤岛

信息孤岛互联互通的困难 尽管已经进入了互联网时代&#xff0c;信息系统中的信息孤岛现象仍然十分地严重&#xff0c;不同部门&#xff0c;不同机器之间难以实现信息的互联互通。存在大量的信息孤岛。 不同信息系统的相互通信依赖通信协议和数据模型的定义&#xff0c;前者决定…

上海安全员C证继续教育题库(附答案)

1.从业人员经过安全教育培训&#xff0c;了解岗位操作规程&#xff0c;但未遵守而造成事故的&#xff0c;行为人应负( )责任&#xff0c;有关负责人应负( )责任。 A.直接 间接 B.直接 领导 C.间接 管理D.直接 管理 2.对生产附着式升降脚手架产品的单位&#xff0c;必须…

Java数据结构与算法(买卖股票最佳时机​)

前言 买卖股票最佳时机和最长子数组和类似。暴力算法和动态规划算法几乎如出一辙。一个是前序和小于零时重置当前值&#xff0c;一个是最小值小于当前值时重置为最小值。需关注重置的计算规则和标志。 买卖股票对应leetcode . - 力扣&#xff08;LeetCode&#xff09; 实现…