numpy数组索引、数组切片、数组形状修改、数组类型修改和数组去重

news2024/11/19 1:55:36

 一、numpy数组索引、切片

  • 直接进行索引,切片
  • 对象[:, :]:先行后列

代码如下 

a = np.array([[1, 2, 3], [11, 22, 33]])   # 二维数组
a[1, [0,1,2]]  # 索引

a = np.array([[1, 2, 3], [11, 22, 33]])    # 二维数组
a[1, 0:3]  # 切片

a2 = np.array([[[1,2,3],[4,5,6]], [[11,22,33],[44,55,66]]])    # 三维数组
a2[1, 0, [0, 2]] 

a2 = np.array([[[1,2,3],[4,5,6]], [[11,22,33],[44,55,66]]])     # 三维数组
a2[1, 0, 0:2]   # 切片为左闭右开

a2 = np.array([[[1,2,3],[4,5,6]], [[11,22,33],[44,55,66]]])     # 三维数组
a2[0:2, 0:2, 1:2]   # 切片为左闭右开

 操作演示如下

二、numpy数组形状修改

  • ndarray.reshape(shape, order):返回一个具有相同数据域,但shape不一样的视图,行、列不进行互换
  • ndarray.resize(new_shape):修改数组本身的形状(需要保持元素个数前后相同),行、列不进行互换
  • ndarray.T:数组的转置,将数组的行、列进行互换

代码如下

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组4×5
a.reshape([5,4])  # # 数组的形状被修改为5行4列,总共20个元素,5×4=20

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组
a.reshape([-1, 10])   # 数组的形状被修改为2行10列, -1: 表示通过待计算,2×10=20

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组4×5
a.resize(2, 10)   # 数组的形状被修改为2行10列
a.shape  # 输出:(2, 10)
a

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组
a.T   # 数组的转置

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组
a.T.shape  # 数组的转置

演示如下

三、numpy数组类型修改和数组去重

  • ndarray.astype(type):返回修改了类型之后的数组
  • ndarray.tostring([order])或ndarray.tobytes([order]):构造包含数组中原始数据字节的Python字节
  •  np.unique():数组去重

 使用方法代码如下

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组
a.astype(np.string_)

a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 22, 33, 44, 55], [66, 77, 88, 99, 100]])   # 二维数组
a.tobytes()

a = np.array([[1, 2, 6, 4, 9], [6, 3, 4, 9, 2]])   # 二维数组
np.unique(a)

演示结果如下

学习导航:http://xqnav.top/

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

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

相关文章

【Paper】2021_多智能体系统滞后一致性研究_马逸文

马逸文. 多智能体系统滞后一致性研究[D].西南民族大学,2021.DOI:10.27417/d.cnki.gxnmc.2021.000193. 文章目录第一章 绪论第三章 二阶离散线性多智能体系统滞后一致性3.5 数值仿真第一章 绪论 第三章 二阶离散线性多智能体系统滞后一致性 3.5 数值仿真 x0(k1)Ax0(k)v0(k)v0(…

脚本-抽取配置文件

要获取不同版本的下载链接需要通过三次点击才能进入到有下载链接的Html页,想写爬虫的话需要使用selenium去实现点击功能,然后这个网站比较乱,所以根据Xpath也不太好写(可能得写好多异常处理),所以我选择手动…

数字化门店| 奶茶店智慧管理系统

奶茶如今已经成为年轻女性的常饮品,比如蜜雪冰城、奈雪的茶之类的品牌线下门店,门店量的庞大覆盖,使得每天都是人来人往,但碰上优惠活动日或节假日,很多人需要排很长的队才能买到,同时在店内坐的消费者如果…

[附源码]java毕业设计血库管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

网页期末作业 基于HTML+CSS中国传统节日【清明节】带论文8000字

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

关于python内置数据类型的小练习

文章目录练习-两数之和求不重复子串的长度练习-两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同…

Typescript 中根据某个字段判断其他字段是否必传

背景 我在使用 Typescript 的时候遇到过这样的一个问题。我有这样的一个组件 前面的两个搜索框是根据参数判断是否要隐藏的,Typescript 的类型定义就是这样的 type BasicItem {label: stringvalue: number } type BrandItem BasicItem & {}type Pruduction…

Linux19 --- 线程同步、用户级和内核级线程、互斥锁、信号量、读写锁、条件变量

一、线程同步 线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直到该线程完成操作,其他线程才能操作,也就是协同步调,让线程按预定的先后次序进行运行。 线程同步的方法有…

Windows OpenGL 图像透明度调节

目录 一.OpenGL 图像透明度 1.原始图片2.效果演示 二.OpenGL 图像透明度源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES …

Arduino开发实例-SR04T/SR04M 防水超声波传感器驱动

SR04T/SR04M 防水超声波传感器驱动 本文展示如何通过SR04T 防水超声波传感器获取距离数据。 本文还将讨论该模块的工作原理以及将数据处理。 1、SR04T/SR04M介绍 SR04T/SR04M超声波测距模块可提供21cm-600cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括收发一体的…

python 的cut与qcut

我想要实现多分类,样本不是均匀分布的 使用cut,可以实现自定义范围分类 使用qcut,可以实现每个 分类的个数大致相等 cut 与 qcut方法使用 参考 https://www.cnblogs.com/Motimer/p/16006313.html 1、cut方法 pandas.cut(x, bins, rightT…

x86和arm框架下的centOS

1 CPU架构分为 X86 , ARM ,MIPS , power , ia64 AMD64 X86_64 x64 ,是64位的CPU 架构,区分ARM64 1.x86 : 复制指令集cisc,高性能,速度快,完成量打(内存,硬盘&#xf…

NoSQLBooster4MongoDB - 用SQL查询MongoDB

最好的MongoDB的客户端工具–NoSQLBooster。NoSQLBooster立志做“The Smartest IDE for MongoDB”。 使用 mb.runSQLQuery()方法,能把SQL语句翻译成MongoDB的查询语句. 借助适用于 MongoDB 的 NoSQLBooster,您可以针对 MongoDB 运行 SQL SELECT 查询。 SQL 支持包…

离线安装PostgreSQL数据库(v13.4版本)

记录:328 场景:在CentOS 7.9操作系统上,离线安装PostgreSQL数据库,版本:v13.4。主要是PostgreSQL的编译、安装、启动、登录、设置远程可登录、创建数据库、创建数据库用户等。 版本: 操作系统&#xff1…

转铁蛋白修饰硬脂酸/棕榈酸 TF-PEG-C18 Stearic Acid/C16, palmitic acid

产品名称:转铁蛋白-聚乙二醇-硬脂酸 英文名称:TF-PEG-C18 Stearic Acid 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体,取决于分子量 PEG分子量可选:350、550、750、1k、2k…

G. Good Key, Bad Key(暴力)

Problem - 1703G - Codeforces 有n个箱子。第i个箱子里有ai个硬币。你需要按顺序打开所有n个箱子,从箱子1到箱子n。 你可以用两种类型的钥匙来打开箱子。 一把好钥匙,使用它需要花费k个硬币。 坏钥匙,不需要花费任何金币,但会将…

操作系统:进程的创建(fork函数)、进程的替换(exec函数)

文章目录1.进程的创建2.进程的替换3.进程的阻塞1.进程的创建 ①调用fork函数的进程为父进程,调用后生成一个子进程; ②创建子进程成功时,父进程中fork函数的返回值是子进程的进程号PID; ③创建子进程失败时,父进程中fo…

使用.NET简单实现一个Redis的高性能克隆版(一)

正文 我遇到了这个项目,它的目标是成为一个比Redis有着更好性能和更易用的克隆版。我发现它很有趣,因为它主要的卖点之一就是它是在多线程模式下运行(而不是像Redis那样是单线程)。他们使用memtier_benchmark(Redis项…

shell命令以及运行原理

shell命令以及运行原理shell命令以及运行原理shell命令以及运行原理 Linux严格意义上来说说的是操作系统,我们把操作系统称之为“内核”(kernel),但是我们用户是不会直接与kernel直接打交道的,我们是通过一个“外壳程…

D. Fixed Point Guessing(二分+交互式问题)

Problem - D - Codeforces 这是一个互动问题。 最初,有一个数组a[1,2,...,n],其中n是一个奇数正整数。陪审团选择了n-12对不相干的元素,然后对这些元素进行交换。例如,如果a[1,2,3,4,5],对1↔4和3↔5进行互换&#xf…