Numpy 数组元素添加与元素删除函数详解
元素添加
Numpy中有类似python列表操作函数append()及insert(),但是用法稍有不同,append()及insert()不作为数组的实例方法使用。
np.append()
np.append()的参数如下
def append(arr, values, axis=None):
其中,arr为数组对象,values为要插入的值或子数组,axis为0则沿行方向添加元素,为1则沿列方向添加元素,但都是将元素加至末尾
插入一维数组
import numpy as npdata1 = np.random.randint(0,10,5)
print(data1)data1 = np.append(data1, 100)print(data1)
#
# [1 0 3 1 7]
# [ 1 0 3 1 7 100]
插入二维数组
插入二维数组就会涉及到插入的方式,也就是沿行添加还是沿列添加,并且要保证数组每个维度的长度相等,而且如果指定插入的轴,则会将数组扁平化处理,也就是降维至一维数组,并且插入的数组维度要与原数组相同
不指定插入的轴
import numpy as npdata1 = np.random.randint(0,10,(3,4))
print(data1)
data2 = np.append(data1,[[1,1,1,1]])
print(data2)# [[6 1 3 4]
# [7 6 2 6]
# [6 5 7 4]]
# [6 1 3 4 7 6 2 6 6 5 7 4 1 1 1 1]
可以看到数组做了扁平化处理,然后将元素添加到了末尾的位置
沿行插入
import numpy as npdata1 = np.random.randint(0,10,(3,4))
print(data1)
data2 = np.append(data1,[[1,1,1,1]], axis=0)
print(data2)# [[9 2 7 3]
# [6 4 1 8]
# [6 2 1 1]]
# [[9 2 7 3]
# [6 4 1 8]
# [6 2 1 1]
# [1 1 1 1]]
沿列插入
import numpy as npdata1 = np.random.randint(0,10,(3,4))
print(data1)
data2 = np.append(data1,np.ones((3,1)), axis=1)
print(data2)# [[9 4 1 6]
# [6 7 1 0]
# [0 2 5 6]]
# [[9. 4. 1. 6. 1.]
# [6. 7. 1. 0. 1.]
# [0. 2. 5. 6. 1.]]
注意这里的维度要保持一致,也就是形状要为(3,1)
insert()
insert()函数的作用为指定索引位置插入元素或子数组,参数如下
def insert(arr, obj, values, axis=None):
可以看到arr为数组对象,obj为索引位置,values为要插入的元素或子数组,axis为插入的轴
同样这里要保准数组维度,并且不指定axis会导致数组扁平化
插入一维数组
import numpy as npdata1 = np.random.randint(0,10,5)
print(data1)data2 = np.insert(data1,2,100)
print(data2)
# [8 0 6 5 1]
# [ 8 0 100 6 5 1]
插入二维数组
不指定插入的轴
import numpy as npdata1 = np.random.randint(0,10,(2,3))
print(data1)data2 = np.insert(data1,2,[1,2,3])
# [[7 3 9]
# [3 1 3]]
# [7 3 1 2 3 9 3 1 3]
可以看到这里直接将数组扁平化后,将要插入的子数组按元素插入了指定的索引位置
沿行插入
import numpy as npdata1 = np.random.randint(0,10,(2,3))
print(data1)data2 = np.insert(data1,2,[[1,2,3]],axis=0)
print(data2)
# [[1 3 3]
# [2 3 0]]
# [[1 3 3]
# [2 3 0]
# [1 2 3]]
沿列插入
import numpy as npdata1 = np.random.randint(0,10,(2,3))
print(data1)data2 = np.insert(data1,2,np.ones((2,1)),axis=1)
print(data2)
# [[5 9 5]
# [6 0 3]]
# [[5 9 1 1 5]
# [6 0 1 1 3]]
补充:insert()函数的广播机制
insert函数在进行二维数组的插入时,不同于append()函数需要插入数组的维度要与被插入的数组一致,insert()函数可以将插入数组进行广播,从而匹配形状
import numpy as npdata1 = np.random.randint(0,10,(2,3))
print(data1)data2 = np.insert(data1,2,1,axis=1)
data3 = np.insert(data1,2,[1,1,1],axis=0)
print(data2)
print(data3)
# [[2 8 7]
# [5 8 9]]
# [[2 8 1 7]
# [5 8 1 9]]
# [[2 8 7]
# [5 8 9]
# [1 1 1]]
这里分别使用常量1和一维数组作为插入对象进行了广播尝试
元素删除
np.delete()
元素删除这里使用np.delete()函数,函数参数如下
def delete(arr, obj, axis=None):
arr为要进行删除的数组对象,obj为要删除的元素对应的下标,axis为要进行删除的轴
同样,若不指定axis,则会对数组进行扁平化处理
对一维数组进行删除
import numpy as npdata1 = np.random.randint(0,10,5)
print(data1)data2 = np.delete(data1,2)
print(data2)
#
# [1 1 4 3 6]
# [1 1 3 6]
对二维数组进行阐述
不指定轴
import numpy as npdata1 = np.random.randint(0,10,(2,3))
print(data1)data2 = np.delete(data1,2)
print(data2)
# [[5 4 6]
# [0 3 7]]
# [5 4 0 3 7]
可以看到数组扁平化后删除了索引为2的值
删除指定行
import numpy as npdata1 = np.random.randint(0,10,(3,4))
print(data1)data2 = np.delete(data1,2,axis=0)
print(data2)
# [[8 5 7 2]
# [9 0 7 1]
# [6 2 9 0]]
# [[8 5 7 2]
# [9 0 7 1]]
删除指定列
import numpy as npdata1 = np.random.randint(0,10,(3,4))
print(data1)data2 = np.delete(data1,2,axis=1)
print(data2)
# [[3 5 0 2]
# [0 0 0 2]
# [4 2 8 6]]
# [[3 5 2]
# [0 0 2]
# [4 2 6]]
相关文章:
Numpy 数组元素添加与元素删除函数详解
元素添加 Numpy中有类似python列表操作函数append()及insert(),但是用法稍有不同,append()及insert()不作为数组的实例方法使用。 np.append() np.append()的参数如下 def append(arr, values, axisNone): 其中,arr为数组对象࿰…...
【Python】高效图像处理库:pyvips
月亮慢慢变圆,日子慢慢变甜。 在图像处理领域,pyvips 是一个轻量级且高效的库,适合处理大规模图像、实现高性能的操作。相较于其他常见的图像处理库如 PIL 或 OpenCV,pyvips 以其低内存占用和出色的速度脱颖而出。本文将介绍 pyv…...
java项目之在线考试与学习交流网页平台源码(springboot)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试与学习交流网页平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于JAVA语言…...
【Android源码】屏蔽系统通知出现在系统栏中
环境 aosp: android-14.0.0_r1 真机:Pixel5 目标 我想把usb连接的两个系统通知屏蔽掉 “正在通过 USB 为此设备充电”“已连接到 USB 调试” 步骤 首先找到这两句内容出现的位置在 frameworks/base/core/res/res/values-zh-rCN/strings.xml <string name&…...
MySQL索引测试
在MySQL中,即使表中没有数据,查询优化器也会考虑使用索引来执行查询。但在某些情况下,查询优化器可能会选择不使用索引,这通常是基于成本效益分析的结果。 表中没有任何数据时,无论是否使用索引,查询结果都…...
【软件设计】常用设计模式--观察者模式
软件设计模式(四) 观察者模式一、观察者模式(Observer Pattern)1. 概念2. 模式结构3. UML 类图4. 实现方式C# 示例步骤1:定义观察者接口步骤2:定义主题接口步骤3:实现具体主题步骤4:…...
东北非国企就职体验
有感而发,校招毕业选了个非央国企但偏稳的工作,属于事儿少离家近钱还可以。不忙,收入在东北也还不错,可是看到近期那些考上公务员那些有编制的pyq,真的是很感叹他们的生活真的是丰富多彩。 虽然我不忙,但是…...
经典sql题(二)求连续登录最多天数用户
示例数据 假设我们的 test 表有以下数据: iddate12023-10-01 08:00:0012023-10-02 09:00:0012023-10-03 10:00:0012023-10-05 11:00:0022023-10-01 10:00:0022023-10-02 12:00:0022023-10-03 14:00:0022023-10-04 15:00:0032023-10-01 16:00:0032023-10-02 16:00:…...
A. Closest Point
time limit per test 2 seconds memory limit per test 512 megabytes Consider a set of points on a line. The distance between two points ii and jj is |i−j||i−j|. The point ii from the set is the closest to the point jj from the set, if there is no othe…...
沟通更高效:微信群转移至企业微信操作攻略!
微信群转移到企业微信并不难,具体操作如下: 打开移动端企业微信主页,找到微信聊天栏中的【接收微信中的工作消息】; 点击【前往微信选择群聊】, 跳转到微信; 选择微信上的工作群聊,只能选择作…...
计算机毕业设计 基于Python Django的旅游景点数据分析与推荐系统 Python+Django+Vue 前后端分离 附源码 讲解 文档
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
关于安卓App自动化测试的一些想法
安卓App自动化一般使用PythonAppium。页面元素通常是使用AndroidStudio中的UI Automator Viewer工具来进行页面元素的追踪。但是这里涉及到一个问题就是,安卓apk在每次打包的时候,会进行页面的混淆以及加固,所以导致每次apk打包之后会出现页面…...
Bigemap GIS Office 2024注册机 全能版地图下载软件
对于需要利用GIS信息进行编辑、设计的用户来说,Bigemap GIS Office占有重要地位。用户可以使用Bigemap GIS Office作为工具进行设计、分析、共享、管理和发布地理信息。Bigemap GIS Office能实现多种数据流转、嵌入、融合以及更多地为用户提供数据的增强处理及多种分…...
秦时明月6.2魔改版+GM工具+虚拟机一键端
今天给大家带来一款单机游戏的架设:秦时明月。 另外:本人承接各种游戏架设(单机联网) 本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。 教程是本人亲自搭建成功的,绝对是完整可运行…...
firewalld实现NAT端口转发
1、准备工作 # 开启 NAT 转发 firewall-cmd --permanent --zonepublic --add-masquerade # 开放 DNS 使用的 80 端口,tcp# 必须,否则其它机器无法进行域名解析 firewall-cmd --zonepublic --add-port80/tcp --permanent # 检查是否允许 NAT 转发 f…...
中国电子学会202309青少年软件编程(Python)等级考试试卷(二级)真题
青少年软件编程(Python)等级考试试卷(二级) 分数:100 题数:37 一、单选题(共25题,每题2分,共50分) 1、 yyh = [2023, 杭州亚运会, [拱宸桥, 玉琮莲叶]] jxw = yyh[2][0] print(jxw[1] * 2)以上代码运行结果是?( ) A. 宸宸 B. 杭杭 C. 玉玉 D. 州州 2、阿宝…...
第四天旅游线路预览——从贾登峪到喀纳斯景区入口(贾登峪游客服务中心)
第四天:从贾登峪到喀纳斯风景区入口,晚上住宿贾登峪; 从贾登峪到喀纳斯景区入口(贾登峪游客服务中心): 搭乘贾登峪①路车,路过三湾到达景区换乘中心,路程时长约40分钟; …...
个人常用命令
文章目录 linux命令基本命令screen docker命令 linux命令 基本命令 查看文件大小:sudo du -sh /文件路径 查看当前目录下所有文件夹大小,不进行递归:sudo du -h --max-depth1 远程复制文件:rsync -avz -e ssh -p 端口号 ip地址:/远程文件地…...
如何根据协议请求去捕捉在个文件中发出去的
场景:随着业务越来越复杂,一个“触发”可能发出去N个协议,此时有某一个协议发生了报错,需要去找这个协议,去文件中走读逻辑,去找该协议,效率很慢,业务极其复杂的情况下,很…...
Lombok -----此java库 常用的注解及其功能总结
总结 Lombok 是一个 Java 库,它可以帮助开发者减少在 Java 中编写那些繁琐的“boilerplate”代码的工作量,比如 getter 方法、setter 方法、构造函数、toString 方法等。 通过简单的注解,Lombok 能够自动为你的类生成这些方法…...
Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案
1. 为什么选Taurus做多执行器对比——不是为了炫技,而是为了少踩坑在性能测试领域,我见过太多团队卡在“选型”这一步:刚招来一个会写JMeter脚本的工程师,项目突然要压测WebSocket接口,发现JMeter原生支持弱、插件维护…...
苏州创新药20年,站上全球产业洗牌暴风眼
一个城市的创新药产业集群如何从无到有,又如何在全球化临界点寻找自己的位置。文|徐鑫编|任晓渔过去一年多,苏州是全球创新药产业版图中一个绕不过去的城市。大额海外授权交易频繁传出,在中国高端制造走出去的背景下&a…...
BurpSuite 2025插件开发JDK版本兼容性实战指南
1. 为什么BurpSuite插件开发环境总在JDK版本上翻车?你是不是也经历过:下载好BurpSuite最新版2025.4,兴冲冲打开插件开发文档,照着官方示例写完第一个HelloWorld插件,一编译——java.lang.UnsupportedClassVersionError…...
2605.VGGT-Omega 论文解读: 3D重建的Scaling Law, Register Attention效率革命 | Oxford+Meta CVPR26 Oral
VGGT-Omega: Scaling Feed-Forward 3D Reconstruction Jianyuan Wang, Minghao Chen, Shangzhan Zhang, Nikita Karaev, Johannes Schonberger, et al. Visual Geometry Group, Oxford Meta AI | CVPR 2026 Oral | arXiv 2605.15195 Paper | Project Page 一句话总结 VGGT-Om…...
超维计算(HDC)原理与ScalableHD架构优化实践
1. 超维计算(HDC)基础解析超维计算(Hyperdimensional Computing, HDC)是一种受大脑信息处理机制启发的计算范式,其核心思想是用高维随机向量(通常称为超向量或HV)来表示和处理信息。与传统神经网…...
二十六.签名与脚本(1)--脚本介绍
1.区块链脚本介绍在之前的章节中,我们了解了签名与验证相关,但是btc的交易数据,签名和验证,不是单纯的,还有脚本深度参与其中。我们从开始来:bool SendMoney(CScript scriptPubKey, int64 nValue, CWalletT…...
网飞成立 AI 动画工作室,开启流媒体“原生 AI 制片时代”,中外布局逻辑有何不同?
1. Netflix“偷跑”在影视巨头关于 AIGC 的军备竞赛中,Netflix 再次加速。据外媒 TheVerge 报道,网飞于今年 3 月成立了名为 "INKubator" 的工作室,这是全球流媒体巨头中首个以生成式人工智能为核心的动画制作部门。此动作引发全球…...
Windows开机自动全屏打开指定网页?一个快捷方式参数就搞定(Chrome/Edge/Firefox教程)
Windows开机自动全屏展示网页的终极方案每次开机都要手动打开浏览器、输入网址、切换全屏模式?这种重复操作不仅浪费时间,还容易在重要演示时手忙脚乱。想象一下:电脑启动后自动全屏显示你的仪表盘、会议日程或是监控大屏,整个过程…...
AutoPentest:面向红队的渗透测试决策引擎架构解析
1. 这不是又一个“自动化扫描器”,而是一套能替你做决策的渗透测试工作流引擎AutoPentest这个名字,第一眼容易让人联想到Nmap加个for循环、或者Burp Suite里点几下Intruder——但实际用过的人很快会意识到:它根本不在同一个维度上。我第一次在…...
3PEAK思瑞浦 TPA6531-S5TR SOT23-5 运算放大器
特性 供电电压:1.75V至5.5V 偏移电压:1.5mV(最大值) 最大可调工作频率:300kHz,斜率:0.15V/us 轨到轨输入和输出 0.1赫兹至10赫兹电压噪声:1伏峰值 开关电源时无显著输出抖动 低功耗:每通道最大25安培 工作温度范围:-40C至125C...
