Python模块之Numpy(三)-- 数组的访问

        Numpy对数组的操作十分高效,这主要源于其对索引的使用。数组索引的使用和列表(list)类似,索引都是从0开始,在访问或者批量引用时,遵循左闭右开的原则。

对于一维数组

import numpy as np
arr = np.arange(10)
arr[3]  #访问索引为3的元素,即第4个元素
arr[2:6]  #访问索引位置为2至5的元素,共4个
arr[:5]  #访问索引位置5之前的所有元素,共5个
arr[-1]  #访问倒数第一个元素,‘-’表示倒数
arr[5:-1:1]  #以1为步长访问索引位置5到倒数第一个元素,不包括倒数第一个
arr[8:1:-2]  #以2为步长反方向访问索引位置8到索引位置1的元素,不包括索引位置1
arr[::-1]  #倒序逐一访问所有元素
arr[4:6] = 101,102  #将索引位置4和5的元素改为101和102

对于二维数组

arr = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
arr[0,2:4]  #索引第0行中第2列和第3列元素
arr[1:,4:]  #索引2,3行中第5列元素
arr[:,2]  #索引2列元素
arr[[(0,1,2),(1,2,3)]]  #索引arr[0,1],arr[1,2],arr[2,3]
arr[1:,(0,2,3)]  #索引第2,3行第0和2,3列元素
#改变数组的形状
arr = np.arange(20)  #创建一个有20个元素的一维数组
arr.reshape(4,5)  #将arr改为四列五行的二维数组

数组形状的改变

        在对数组进行操作的时候,有时候需要改变数组的维度,在 NumPy 中,常用 reshape 函数来改变数组的形状,但需要注意,元素个数必须匹配,如果指定的维度和数组元素的个数不吻合,会报错。还有ravel和flatte 函数这两个函数,都可以将数组展平,区别在于ravel函数只能对数组进行横向的展平,但是flatten函数则可以选择横向或者纵向展平,示例如下:

arr = np.arange(20)  #创建一个有20个元素的一维数组
arr.reshape(4,5)  #将arr改为四列五行的二维数组arr = np.arange(20).reshape(4,5)  #创建四列五行的二维数组
arr.ravel()  #展平数组--横向
arr.flatten()  #展平数组--横向
arr.flatten('F')  #展平数组--纵向

        NumPy 也可以对数组进行组合,数组的组合类似于线性代数中矩阵的分块或者聚合,数组的组合主要有横向组合与纵向组合,用于数组组合的函数有hstack、vstack以及 concatenate,使用示例如下:

#先创建两个数组
arr1 = np.arange(20).reshape(4,5)
arr2 = arr1 * 2  
np.hstack((arr1,arr2))  #横向合并
np.vstack((arr1,arr2))  #纵向合并
np.concatenate((arr1,arr2),axis=1)  #横向合并
np.concatenate((arr1,arr2),axis=0)  #纵向合并

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

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

相关文章

SD-WAN供应商选择指南

企业网络日益演变,尤其是跨国企业、出海电商和外贸企业,其网络需求变得愈发复杂多样。SD-WAN技术因此备受瞩目,成为连接分支机构和数据中心的关键解决方案。然而,市面上的SD-WAN供应商众多,如何选择适合的服务商成为了…

gitignore配置不生效记录

第一种可能性: 在你所有的文件都通过了git add . 命令的情况下,使用指令git rm -r --cached .进行缓存清除,完成之后,再次通过git add . 然后通过git status去看提交的文件都有哪些。 第二种可能性 如果上面的不行就是你添加的…

混合使用MFC与QT的深度技术分析

混合使用MFC与QT的深度技术分析 目录 混合使用MFC与QT的深度技术分析 一、引言 二、MFC与QT概述 三、混合使用场景分析 四、技术挑战与解决方案 五、实操:集成QT模块至MFC应用 六、性能考量与优化策略 七、安全性分析 八、案例研究 九、总结与未来展望 一、…

【机器学习】Scikit-Learn:Python机器学习的瑞士军刀

Scikit-Learn:Python机器学习的瑞士军刀 一、Scikit-Learn简介二、Scikit-Learn的核心功能数据预处理模型选择模型评估模型部署 三、Scikit-Learn的中文社区与API四、代码实例:使用Scikit-Learn进行鸢尾花数据集分类 在当今这个数据驱动的时代&#xff0…

C++ Primer 中文版(第 5 版)- 第四单元

第四单元 练习 4.1 编写一段程序&#xff0c;使用条件运算符从vector中找到哪些元素的值是奇数&#xff0c;然后将这些奇数值翻倍。 #include <iostream> #include <vector>using std::cout; using std::endl; using std::vector;int main() {vector<int>…

论文《Deep graph tensor learning for temporal link prediction》阅读

论文《Deep graph tensor learning for temporal link prediction》阅读 论文概况IntroductionRelated work动态图表示学习图张量表示 Preliminary张量生成建模 深度图张量学习模型A.基于图紧凑的空间表示B.时间模式表示C.时空特征聚合D.损失函数 实验数据集对比实验消融实验参…

美易官方:美国房地产贷款逾期率飙升,银行业危机仍可控?现货黄金暂守2360

美国房地产贷款逾期率飙升&#xff0c;银行业危机仍可控&#xff1f;现货黄金暂守2360 近年来&#xff0c;美国房地产市场一直处于波动之中&#xff0c;尤其是商业房地产领域。近期&#xff0c;美联储发出警告&#xff0c;称商业房地产贷款逾期率持续攀升&#xff0c;银行正在为…

鸿蒙ArkUI开发:常用布局【交叉轴】

交叉轴 垂直于主轴方向的轴线。Row容器交叉轴为纵向&#xff0c;Column容器交叉轴为横向。通过alignItems属性设置子元素在交叉轴&#xff08;排列方向的垂直方向&#xff09;上的对齐方式alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式&#xff0c;其优先级高于al…

M 有效算法

M 有效算法 本题考验二分知识&#xff0c;思路是二分k的取值&#xff0c;就按第一组样例来说当我们k取值为1的时候我们遍历数组想让|8-x|<k1的话x的取值范围是7-9&#xff0c;想让|3-x|<k2的话x的取值范围是1-5&#xff0c;两者x的区间不重合&#xff0c;说明肯定没有x能…

【力扣】164. 最大间距

164. 最大间距 题目描述 给定一个无序的数组 nums&#xff0c;返回 数组在排序之后&#xff0c;相邻元素之间最大的差值 。如果数组元素个数小于 2&#xff0c;则返回 0。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 示例 1: 输入: nums [3,6,9,…

几种ssh自动登录服务器的方法

一、Windows环境 1. 配置公钥和私钥 https://developer.aliyun.com/article/1132156 2. 使用putty.exe 官网见&#xff1a;https://www.putty.org/ 下载地址&#xff1a;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 使用示例如下&#xff1a; echo of…

BGP—边界网关协议

BGP 动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内&#xff0c;主要用来发现和计算路由&#xff0c;为AS内提供路由信息的交换&#xff1b;而EGP工作在AS与AS之间&#xff0c;在AS间提供无环路的路由信息交换&#xff0c;BGP则是EGP的一种。 BGP是一…

打开深度学习的锁:(0)什么是神经网络?有哪些必备的知识点准备?

PS&#xff1a;每每温故必而知新 什么是神经网络&#xff1f; 一、一个单神经元的神经网络二、多个单神经元的神经网络三、到底什么是机器学习&#xff1f;&#xff08;重点&#xff09;1&#xff1a;什么是机器学习的训练&#xff1f;2&#xff1a;什么是模型&#xff1f;权重…

接口测试全流程扫盲..

一.为什么要做接口测试&#xff1f; ①.越底层发现bug&#xff0c;它的修复成本是越低的。 ②.前端随便变&#xff0c;接口测好了&#xff0c;后端不用变&#xff0c;前后端是两拨人开发的。 ③.检查系统的安全性、稳定性&#xff0c;前端传参不可信&#xff0c;比如京东购物…

拉链表实现过程+案例

第一种 1.从ODS层获取增量数据(上一天新增和更新的数据) 2.拿着DWD原始拉链表数据 left join 增量数据 ,修改原始拉链中历史数据的结束时间 3.拿着left join 的结果集 union all 增量数据 4.把最新的拉链数据优先保存到DWD对应的临时表中 5.使用insertselect 方式把临时表中…

数据结构入门 时间 空间复杂度解析

一. 算法效率 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。 时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间&am…

哈希重要思想——位图详解

一&#xff0c;概念 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&#xff0c;数据无重复的场景。通常是用来判断某个数据存不存在的。 为了方便理解我们引入一道面试题&#xff0c; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无…

redis试题按知识点归类(二)

六、性能优化 1.如何对 Redis 进行性能监控&#xff1f; (1)Redis 自带监控命令 使用 INFO 命令获取服务器的详细信息&#xff0c;包括角色、角色具体信息、服务器不同部分的统计数据等。使用 SLOWLOG 命令来管理和监控慢查询。 (2)第三方监控工具&#xff1a; Redis Desk…

Python3 笔记:二进制的转换

十进制是逢十进一&#xff0c;二进制就是逢二进一。 十进制里最大的数字是9&#xff0c;二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…

ES扩缩容

ES扩容 1.1 页面扩容ES1 1.2 拷贝插件及ssl文件 JSON [ec_admin@kde-offline3 ~]$ sudo rsync -avP /usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/* kde-offline6:/usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/ ;echo $? [ec_admin@kde-offline3 ~]$ sudo rsync -avP /us…