当前位置: 首页 > news >正文

NumPy中生成和堆叠数组、生成切片的特殊对象:np.r_ np.c_ np.s_

在NumPy中有三个特殊的对象,非常好用:

  1. np.r_:按行连接两个数组,也就是将两个数组垂直堆叠。
  2. np.c_:按列连接两个数组,也就是将两个数组水平堆叠。
  3. np.s_:生成用于切片的slice对象。

下面详细介绍用法:

numpy.r_

将切片或对象沿第一个轴连接,语法:

np.c_[...]

1. 索引为切片

如果索引表达式包含切片符号或标量,则创建一个范围由切片符号指定的一维数组。

切片符号 start:stop:step 相当于 np.arange(start, stop, step) 。

np.r_[0:10:2]  # array([0, 2, 4, 6, 8])

如果step为虚数则相当于 np.linspace(start, stop, step, endpoint=1) 。

np.r_[-1:1:6j]  # array([-1. , -0.6, -0.2,  0.2,  0.6,  1. ])

切片展开后,所有逗号分隔的序列都会被连起来。

np.r_[-1:1:6j, [0]*3, 5, 6]
# array([-1. , -0.6, -0.2,  0.2,  0.6,  1. ,  0. ,  0. ,  0. ,  5. ,  6. ])

2. 索引为数组

如果索引表达式包含逗号分隔的数组,则将它们沿第一个轴堆叠。

np.r_[np.array([1,2,3]), 0, 0, np.array([4,5,6])]
# array([1, 2, 3, 0, 0, 4, 5, 6])

3. 字符串参数

可以用字符串作为索引的第一个参数来改变输出:

(1) 三个由逗号分隔的整数

第一个整数axis指定在哪个轴上连接,默认为 '0' 。

a = np.array([[0, 1, 2], [3, 4, 5]])
np.r_['0', a, a]
# array([[0, 1, 2],
#        [3, 4, 5],
#        [0, 1, 2],
#        [3, 4, 5]])
np.r_['1', a, a]
# array([[0, 1, 2, 0, 1, 2],
#        [3, 4, 5, 3, 4, 5]])

 第二个整数ndmin指定每个数组在连接前必须具有的最小维数。如果原数组的维度不足,则会自动添加长度为1的新轴直到维度为ndmin,默认为 '1' 。

np.r_['0,2', [1,2,3], [4,5,6]]
# array([[1, 2, 3],
#        [4, 5, 6]])

 第三个整数trans1d指定当数组在升维时原数组应该按顺序铺在哪个维度上,默认为 '-1' 。

np.r_['0,2,0', [1,2,3], [4,5,6]]
# array([[1],
#        [2],
#        [3],
#        [4],
#        [5],
#        [6]])
# 解释:原数组是一维的(3,),由于ndmin=2所以需要升维,在升维时trans1d=0所以原数组被铺在了维度0上,
# 变成了(3,1),axis=0所以两个数组在维度0上连接,输出结果的维度为(6,1)。np.r_['0,2,1', [1,2,3], [4,5,6]]
# array([[1, 2, 3],
#        [4, 5, 6]])
# 解释:在升维时trans1d=1所以原数组被铺在了维度1上,变成了(1,3),垂直堆砌后输出结果的维度为(2,3)。np.r_['1,2,0', [1,2,3], [4,5,6]]
# array([[1, 4],
#        [2, 5],
#        [3, 6]])
# 解释:在升维时原数组被铺在了维度0上,变成了(3,1),水平堆砌后输出结果的维度为(3,2)。np.r_['1,2,1', [1,2,3], [4,5,6]]
# array([[1, 2, 3, 4, 5, 6]])
# 解释:在升维时原数组被铺在了维度1上,变成了(1,3),水平堆砌后输出结果的维度为(1,6)。

(2) 字符串 'r' 或 'c'

输出matrix对象。

如果结果是一维且指定了 'r' ,则生成一个 1 x N(行)矩阵。

如果结果是一维且指定了 'c' ,则生成一个 N x 1(列)矩阵。

如果结果是二维,则 'r' 和 'c' 结果相同。

np.r_['r',[1,2,3], [4,5,6]]  # matrix([[1, 2, 3, 4, 5, 6]])

numpy.c_

将切片或对象沿最后一个轴连接,相当于:

np.r_['-1,2,0', index expression]

比如,下面的输出与上面 np.r_['1,2,0', [1,2,3], [4,5,6]] 的输出相同:

np.c_[np.array([1,2,3]), np.array([4,5,6])]
# array([[1, 4],
#        [2, 5],
#        [3, 6]])

numpy.s_

生成一个由切片符号表示的slice对象,语法:

np.s_[start:stop:step]

相当于生成了一个范围为 np.arange(start, stop, step) 的切片。

np.array([0, 1, 2, 3, 4])[np.s_[2::2]]  # array([2, 4])
np.array([0, 1, 2, 3, 4])[np.arange(2,5,2)]  # array([2, 4])

numpy中切片的类型为IndexExpression,但相较于直接使用它,更应该用这两个预定义的实例:

np.s_:IndexExpression(maketuple=False)

np.index_exp:IndexExpression(maketuple=True)

两者的区别在于np.index_exp总是会返回一个元组。

np.s_[2::2]  # slice(2, None, 2)
np.index_exp[2::2]  # (slice(2, None, 2),)

相关文章:

NumPy中生成和堆叠数组、生成切片的特殊对象:np.r_ np.c_ np.s_

在NumPy中有三个特殊的对象,非常好用: np.r_:按行连接两个数组,也就是将两个数组垂直堆叠。np.c_:按列连接两个数组,也就是将两个数组水平堆叠。np.s_:生成用于切片的slice对象。 下面详细介绍…...

js计算当(月/年)工作日(除去节假日)时间进度

js封装文件 // 获取当年的节假日12个月的数据 let holidaysArr [[1, 4, 5, 11, 12, 18, 19, 25, 26, 27, 28, 29, 30, 31], // 1月[1, 2, 3, 4, 5, 6, 9, 15, 16, 22, 23], // 2月[], // 3月[4, 5, 6, 12, 13, 19, 20, 26], // 4月[1, 2, 3, 4, 5, 10, 11, 17, 18, 24, 25, …...

zyNo.22

常见Web漏洞解析 命令执行漏洞 1.Bash与CMD常用命令 (1)Bash 读取文件:最常见的命令cat flag 在 Bash 中,cat 以及的tac、nl、more、head、less、tail、od、pr 均为文件读取相关命令,它们的区别如下: …...

服务器绑定 127.0.0.1 和 0.0.0.0 的区别

前言 IP 地址实际上并不是分配给计算机的,而是分配给网卡的,因此当计算机上存在多块网卡时,每一块网卡都会有自己的 IP 地址。 绑定 127.0.0.1 是绑定到 lookback 这个虚拟的本地回环接口,该接口只处理本机上的数据,…...

系统思考—团队学习

“一个人的成长是从问题中学习,而组织的成长是从结构中进化。” —— 彼得圣吉 看似松散的团队学习结构,回头一看,你早已成长了许多。今天和小伙伴们聊起2024年,才发现很多改变,都是在不经意间发生的。 从最初的探索…...

《Python百炼成仙》21-30章(不定时跟新)

第廿一章 列表开天可变序列初成 不周山的擎天玉柱裂开蛛网纹路,山体内部传出数据结构崩塌的轰鸣。叶军踏着《数据结构真解》残页凌空而立,手中薛香的本命玉尺泛起列表操作的幽光: 补天石序列 [五色石] * 9补天石序列[3] 息壤 # 引发链式变…...

element-ui时间组件同一个月内选择/30天内选择

element-ui时间组件同一个月内选择/30天内选择 同一个月 <el-date-picker v-model"time" type"datetimerange"range-separator"至" start-placeholder"开始时间"value-format"timestamp" :picker-options"pickerO…...

【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解

目录 一、前言 二、DeepSeek简介 2.1 DeepSeek 是什么 2.2 DeepSeek R1特点 2.2.1 DeepSeek-R1创新点 2.3 DeepSeek R1应用场景 2.4 与其他大模型对比 三、阿里云百炼大平台介绍 3.1 阿里云百炼大平台是什么 3.2 阿里云百炼平台主要功能 3.2.1 应用场景 3.3 为什么选…...

微信小程序配置3 配置sass

1. 在config。json文件里面的setting配置“sass” 2. 改你需要的页面后缀名为scss。 3.查看页面即可看到样式。...

应用层优秀的共享民宿物联网框架该怎么选?

有一说一&#xff0c;应用层优秀的物联网框架通常能帮助提升用户体验、提高运营效率、节能减排等等优势&#xff0c;很多老板也很注重这个层面的设计和打磨&#xff0c;那么对于选择应用层优秀的共享民宿物联网框架时&#xff0c;大家可以从哪几个关键因素进行考量呢&#xff1…...

macOS 上部署 RAGFlow

在 macOS 上从源码部署 RAGFlow-0.14.1&#xff1a;详细指南 一、引言 RAGFlow 作为一款强大的工具&#xff0c;在人工智能领域应用广泛。本文将详细介绍如何在 macOS 系统上从源码部署 RAGFlow 0.14.1 版本&#xff0c;无论是开发人员进行项目实践&#xff0c;还是技术爱好者…...

postman登录cookie设置

1.设置环境变量&#xff0c; 定义变量存放共享的登录信息 如Cookie 2.登录接口编码test脚本获取cookie信息 let jsessionidCookie pm.cookies.get("JSESSIONID");if (jsessionidCookie) {let cookie "JSESSIONID" jsessionidCookie "; Admin-Tok…...

如何在Linux中设置定时任务(cron)

在Linux系统中&#xff0c;定时任务是自动执行任务的一种非常方便的方式&#xff0c;常常用于定期备份数据、更新系统或清理日志文件等操作。cron是Linux下最常用的定时任务管理工具&#xff0c;它允许用户根据设定的时间间隔自动执行脚本和命令。在本文中&#xff0c;我们将详…...

激光工控机在精密制造中的应用与优势

在精密制造中&#xff0c;激光工控机可以用于许多场景例如 激光切割与雕刻&#xff1a;用于金属、塑料、陶瓷等材料的精密切割和雕刻&#xff0c;适用于汽车、航空航天、电子等行业&#xff1b;可实现复杂图案和高精度加工&#xff0c;满足微米级精度要求。 激光焊接&#xf…...

conda的创建

1. 确认 conda 已安装 在使用 conda 创建环境之前&#xff0c;需要确保 conda 已经成功安装在你的系统中。你可以通过在命令行中输入以下命令来检查&#xff1a; conda --version如果已经安装&#xff0c;命令行会显示 conda 的版本号&#xff1b;若未安装&#xff0c;你可以…...

python视频爬虫

文章目录 爬虫的基本步骤一些工具模拟浏览器并监听文件视频爬取易错点一个代码示例参考 爬虫的基本步骤 1.抓包分析&#xff0c;利用浏览器的开发者工具 2.发送请求 3.获取数据 4.解析数据 5.保存数据 一些工具 requests, 用于发送请求&#xff0c;可以通过get&#xff0c;p…...

cv2.Sobel

1. Sobel 算子简介 Sobel 算子是一种 边缘检测算子&#xff0c;通过对图像做梯度计算&#xff0c;可以突出边缘。 Sobel X 方向卷积核&#xff1a; 用于计算 水平方向&#xff08;x 方向&#xff09; 的梯度。 2. 输入图像示例 假设我们有一个 55 的灰度图像&#xff0c;像素…...

Oracle入门精读03_Oracle11g安装目录及子目录的结构简介

在Windows2012 Server R2&#xff0c;个人把 Oracle Database 11g安装于硬盘D,如下&#xff1a; 在Oracle Database 11g中&#xff0c;Oracle的目录结构是由Oracle_Base及其子目录cfgtoollogs 、diag 、product、admin、flash_recovery_area和oradata等。这个与Oracle 10G不同的…...

Unity 卡死排查方法(游戏死循环、打包卡死)

适用场景 游戏运行一半卡住了 打包卡住了 工具 visual studio 方法 visual studio 启动工程&#xff0c;调试->附加到Unity&#xff0c;如果开了多个unity&#xff0c;可以用附加到进程找unity 打开线程窗口&#xff0c;调试->窗口->线程 点击暂停按钮&…...

开源、免费项目管理工具比较:2025最新整理30款

好用的开源、免费版项目管理系统有&#xff1a;1.Redmine&#xff1b;2. Taiga&#xff1b;3. OpenProject&#xff1b; 4.ProjectLibre&#xff1b; 5.GanttProject&#xff1b; 6.Tuleap&#xff1b; 7.Trac&#xff1b;8. Phabricator&#xff1b; 9.Notion&#xff1b; 10.…...

AlmaLinux使用Ansible自动部署k8s集群

以下是使用Ansible在AlmaLinux上自动化部署Kubernetes&#xff08;K8S&#xff09;集群的详细步骤&#xff1a; 1. 环境准备 1.1 节点规划 至少3台AlmaLinux 9服务器&#xff08;1个Master&#xff0c;2个Worker&#xff09;确保所有节点网络互通&#xff0c;SSH免密登录已配…...

Django创建超管用户

在 Django 中创建超级用户&#xff08;superuser&#xff09;可以通过命令行工具 createsuperuser 完成。以下是具体步骤&#xff1a; 1. 确保已进行数据库迁移 在创建超级用户前&#xff0c;确保已执行数据库迁移&#xff1a; python manage.py migrate 2. 创建超级用户 …...

机器翻译技术的演进与未来趋势:从规则到神经网络的革新

随着全球化的不断推进和多语言交流的日益频繁,机器翻译(Machine Translation, MT)技术的需求日益增长。机器翻译技术经历了从基于规则的方法到统计方法,再到如今的神经网络方法的发展历程。本文将探讨机器翻译技术的演进过程及其未来趋势,并结合Python代码示例,展示现代机…...

蓝桥杯备赛 Day13.1走出迷宫

链接&#xff1a;走出迷宫 题目描述 小明现在在玩一个游戏&#xff0c;游戏来到了教学关卡&#xff0c;迷宫是一个N*M的矩阵。 小明的起点在地图中用“S”来表示&#xff0c;终点用“E”来表示&#xff0c;障碍物用“#”来表示&#xff0c;空地用“.”来表示。 障碍物不能通…...

Word中Ctrl+V粘贴报错问题

Word中CtrlV粘贴时显示“文件未找到&#xff1a;MathPage.WLL”的问题 Word的功能栏中有MathType&#xff0c;但无法使用&#xff0c;显示灰色。 解决方法如下&#xff1a; 首先找到MathType安装目录下MathPage.wll文件以及MathType Commands 2016.dotm文件&#xff0c;分别复…...

C# Barrier 类使用详解

总目录 前言 Barrier 是 C# 中用于多线程分阶段协同工作的同步工具&#xff0c;位于 System.Threading 命名空间下。它允许多个线程在指定阶段&#xff08;Phase&#xff09;的屏障点&#xff08;Barrier Point&#xff09;同步&#xff0c;所有线程到达屏障点后&#xff0c;才…...

DeepSeek应用——与word的配套使用

目录 一、效果展示 二、配置方法 三、使用方法 四、注意事项 1、永久化使用 2、宏被禁用 3、office的生成失败 记录自己学习应用DeepSeek的过程...... 这个是与WPS配套使用的过程&#xff0c;office的与这个类似&#xff1a; 一、效果展示 二、配置方法 1、在最上方的…...

基于AIOHTTP、Websocket和Vue3一步步实现web部署平台,无延迟控制台输出,接近原生SSH连接

背景&#xff1a;笔者是一名Javaer&#xff0c;但是最近因为某些原因迷上了Python和它的Asyncio&#xff0c;至于什么原因&#xff1f;请往下看。在着迷”犯浑“的过程中&#xff0c;也接触到了一些高并发高性能的组件&#xff0c;通过简单的学习和了解&#xff0c;aiohttp这个…...

CentOS 7.8 安装MongoDB 7教程

文章目录 CentOS 7.8 安装MongoDB 7教程一、准备工作1. 系统更新2. 权限 二、添加MongoDB软件源1. 创建MongoDB的yum源文件2. 添加以下内容3. 保存并退出编辑器 三、安装MongoDB1. 更新yum缓存2. 安装MongoDB 四、启动MongoDB服务1. 启动MongoDB2. 设置MongoDB开机自启动 五、配…...

瑞芯微开发板/主板Android调试串口配置为普通串口方法 深圳触觉智能科技分享

本文介绍瑞芯微开发板/主板Android调试串口配置为普通串口方法&#xff0c;不同板型找到对应文件修改&#xff0c;修改的方法相通。触觉智能RK3562开发板演示&#xff0c;搭载4核A53处理器&#xff0c;主频高达2.0GHz&#xff1b;内置独立1Tops算力NPU&#xff0c;可应用于物联…...

【HDFS】addInternalPBProtocol、setProtocolEngine和registerProtocolAndImpl

本文主要与Hadoop的RPC框架相关 DFSUtil#addInternalPBProtocol: /*** Add protobuf based protocol to the {@link org.apache.hadoop.ipc.RPC.Server}.* This method is for exclusive use by the hadoop libraries, as its signature* changes with the version of the sha…...

springboot239-springboot在线医疗问答平台(源码+论文+PPT+部署讲解等)

&#x1f495;&#x1f495;作者&#xff1a; 爱笑学姐 &#x1f495;&#x1f495;个人简介&#xff1a;十年Java&#xff0c;Python美女程序员一枚&#xff0c;精通计算机专业前后端各类框架。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xf…...

web3是什么,最简单的介绍

Web3是指第三代互联网技术&#xff0c;也被称为分布式互联网。它是在传统互联网&#xff08;Web2.0&#xff09;基础上发展出来的一种新技术体系&#xff0c;旨在通过区块链技术来重新定义人们访问和使用网络服务的方式。以下是关于Web3的详细介绍&#xff1a; 一、核心特点 …...

机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例

为了简单直观的理解模型训练&#xff0c;我这里搜集了两个简单的实现文本情感分类的例子&#xff0c;第一个例子基于朴素贝叶斯分类器&#xff0c;第二个例子基于逻辑回归&#xff0c;通过这两个例子&#xff0c;掌握词袋模型&#xff08;Bag of Words&#xff09;实现文本情感…...

【注意】sql语句where条件中的数据类型不一致,不仅存在性能问题,还会有数据准确性方面的bug......

隐式类型转换规则 MySQL 在进行比较操作时&#xff0c;如果比较双方的数据类型不一致&#xff0c;通常会尝试将其中一个数据类型转换为另一个数据类型&#xff0c;以便进行比较。 对于 select * from t_order where order_no 1538808276987285507 &#xff0c;当 order_no 为 …...

w~大模型~合集30

我自己的原文哦~ https://blog.51cto.com/whaosoft/13284996 #VideoMamba 视频理解因大量时空冗余和复杂时空依赖&#xff0c;同时克服两个问题难度巨大&#xff0c;CNN 和 Transformer 及 Uniformer 都难以胜任&#xff0c;Mamba 是个好思路&#xff0c;让我们看看本文是…...

基于单片机的仓库安防系统(论文+源码)

2.1 需求分析 仓库由于存有大量物品&#xff0c;因此对仓库的监控非常重要&#xff0c;目前仓库已经普遍装有安防系统&#xff0c;以保证仓库的安全&#xff0c;本次基于单片机的仓库安防系统设计&#xff0c;在功能上设计如下&#xff1a; 用户可通过IC卡进入仓库&#xff1…...

AndroidStudio查看Sqlite和SharedPreference

1.查看Sqlite 使用App Inspection&#xff0c;这是个好东西 打开方式&#xff1a;View → Tool Windows → App Inspection 界面如图&#xff1a; App inspection不但可以看Sqlite还可以抓包network和background task连抓包工具都省了。 非常好使 2.查看sharedPreference 使…...

仿 RabbitMQ 实现的简易消息队列

文章目录 项目介绍开放环境第三⽅库介绍ProtobufMuduo库 需求分析核⼼概念实现内容 消息队列系统整体框架服务端模块数据管理模块虚拟机数据管理模块交换路由模块消费者管理模块信道&#xff08;通信通道&#xff09;管理模块连接管理模块 客户端模块 公共模块日志类其他工具类…...

JavaScript基础知识及高频用法

目录 一、语言基础&#xff1a;构建代码逻辑的积木 二、核心概念&#xff1a;理解JavaScript的灵魂 三、高频用法&#xff1a;现代开发必备技巧 四、避坑指南&#xff1a;常见错误与调试 五、学习路线与资源推荐 从入门到实战&#xff0c;掌握现代Web开发基石 作为全球使…...

VUE项目中实现权限控制,菜单权限,按钮权限,接口权限,路由权限,操作权限,数据权限实现

VUE项目中实现权限控制&#xff0c;菜单权限&#xff0c;按钮权限&#xff0c;接口权限&#xff0c;路由权限&#xff0c;操作权限&#xff0c;数据权限实现 权限系统分类&#xff08;RBAC&#xff09;引言菜单权限按钮权限接口权限路由权限 菜单权限方案方案一&#xff1a;菜单…...

多机器人系统的大语言模型:综述

25年2月来自 Drexel 大学的论文“Large Language Models for Multi-Robot Systems: A Survey”。 大语言模型 (LLM) 的快速发展为多机器人系统 (MRS) 开辟新的可能性&#xff0c;从而增强通信、任务规划和人机交互。与传统的单机器人和多智体系统不同&#xff0c;MRS 带来独特…...

如何在 Java 应用中实现数据库的主从复制(读写分离)?请简要描述架构和关键代码实现?

在Java应用中实现数据库主从复制&#xff08;读写分离&#xff09; 一、架构描述 &#xff08;一&#xff09;整体架构 主库&#xff08;Master&#xff09; 负责处理所有的写操作&#xff08;INSERT、UPDATE、DELETE等&#xff09;。它是数据的源头&#xff0c;所有的数据变…...

Redis 数据类型 Hash 哈希

在 Redis 中&#xff0c;哈希类型是指值本⾝⼜是⼀个键值对结构&#xff0c;形如 key "key"&#xff0c;value { { field1, value1 }, ..., {fieldN, valueN } }&#xff0c;Redis String 和 Hash 类型⼆者的关系可以⽤下图来表⽰。 Hash 数据类型的特点 键值对集合…...

17.推荐系统的在线学习与实时更新

接下来就讲解推荐系统的在线学习与实时更新。推荐系统的在线学习和实时更新是为了使推荐系统能够动态地适应用户行为的变化&#xff0c;保持推荐结果的实时性和相关性。以下是详细的介绍和实现方法。 推荐系统的在线学习与实时更新 在线学习的概念 在线学习&#xff08;Onli…...

网络安全检测思路

对于主机的安全检测&#xff0c;我们通常直接采用nmap或者类似软件进行扫描&#xff0c;然后针对主机操作系统及其 开放端口判断主机的安全程度&#xff0c;这当然是一种方法&#xff0c;但这种方法往往失之粗糙&#xff0c;我仔细考虑了一下&#xff0c;觉 得按下面的流程进行…...

老游戏回顾:SWRacer

竞速类游戏里&#xff0c;我很怀念它。 虽然已经25年过去了。 相比之下&#xff0c;别的游戏真的没法形容。 ---- 是LucasArts制作的一款赛车竞速游戏&#xff1b; 玩家要扮演一名银河旅行者参加各种赛车比赛&#xff0c;赢得奖金&#xff0c;在经历了八个不同星球上的24场…...

MySQL面试题合集

1.MySQL中的数据排序是怎么实现的? 回答重点 排序过程中,如果排序字段命中索引,则利用 索引排序。 反之,使用文件排序。 文件排序中,如果数据量少则在内存中排序, 具体是使用单路排序或者双路排序。 如果数据大则利用磁盘文件进行外部排序,一 般使用归并排序。 知识…...

如何在Java EE中使用标签库?

在Java EE&#xff08;现在称为Jakarta EE&#xff09;中使用标签库&#xff08;Tag Library&#xff09;&#xff0c;主要是通过JSP标准标签库&#xff08;JSTL&#xff09;或自定义标签库来实现的。标签库允许在JSP页面中使用自定义的标签&#xff0c;从而简化页面逻辑、增强…...

第 12 天:行为树(Behavior Tree),让 AI 更智能!

&#x1f3af; 目标&#xff1a; ✅ 理解 Unreal Engine 5 行为树&#xff08;Behavior Tree&#xff09; ✅ 创建行为树&#xff08;BT&#xff09;和黑板&#xff08;Blackboard&#xff09;管理 AI 状态 ✅ 使用任务&#xff08;Task&#xff09;让 AI 巡逻、追踪、攻击玩家…...