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

np.r_的用法

np.r_ 是 NumPy 中的一个便捷工具,用于快速拼接数组或生成序列。它是一个基于索引的语法糖,能够简化数组操作,特别是在需要将多个数组按行(或列)拼接时非常有用。


1. np.r_ 的基本功能

np.r_ 的主要作用是:

  • 按行拼接多个数组。
  • 生成等差序列(类似于 np.arangenp.linspace)。
  • 支持切片语法,方便生成一维数组。

语法

np.r_[array1, array2, ...]

np.r_ 的输入可以是:

  1. 多个数组,它们会被按行拼接。
  2. 切片表达式(如 start:stop:step),用于生成等差序列。
  3. 标量值,直接插入到结果中。

2. 示例:数组拼接

(1)拼接一维数组

np.r_ 可以将多个一维数组按行拼接成一个更大的一维数组。

import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])result = np.r_[a, b]
print(result)

输出:

[1 2 3 4 5 6]

(2)拼接二维数组

对于二维数组,np.r_ 默认按行(垂直方向)拼接。

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])result = np.r_[a, b]
print(result)

输出:

[[1 2][3 4][5 6]]

3. 示例:生成等差序列

np.r_ 支持切片语法,可以直接生成等差序列。

(1)简单的切片

result = np.r_[0:10:1]  # 等价于 np.arange(0, 10, 1)
print(result)

输出:

[0 1 2 3 4 5 6 7 8 9]

(2)浮点步长

np.arange 不同,np.r_ 的切片语法支持浮点步长。

result = np.r_[0:1:0.2]  # 等价于 np.arange(0, 1, 0.2)
print(result)

输出:

[0.  0.2 0.4 0.6 0.8]

(3)反转序列

通过负步长生成反向序列。

result = np.r_[10:0:-2]
print(result)

输出:

[10  8  6  4  2]

4. 示例:混合使用

np.r_ 支持混合使用数组、标量和切片。

result = np.r_[1, 2, 3, [4, 5], 6:10, -1]
print(result)

输出:

[ 1  2  3  4  5  6  7  8  9 -1]

5. 对比 np.c_

np.r_np.c_ 是 NumPy 中两个类似的工具,但它们的行为有所不同:

  • np.r_:按行(垂直方向)拼接数组。
  • np.c_:按列(水平方向)拼接数组。

示例对比

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 使用 np.r_
result_r = np.r_[a, b]
print("np.r_:", result_r)# 使用 np.c_
result_c = np.c_[a, b]
print("np.c_:\n", result_c)

输出:

np.r_: [1 2 3 4 5 6]
np.c_:[[1 4][2 5][3 6]]

6. 总结

np.r_ 是一个强大的工具,适用于以下场景:

  1. 快速拼接数组。
  2. 生成等差序列。
  3. 混合使用数组、标量和切片。

它的简洁性和灵活性使其成为处理数组时的一个得力助手。如果您有具体的用例或问题,欢迎进一步讨论!

http://www.xdnf.cn/news/538903.html

相关文章:

  • 代码随想录 算法训练 Day6:哈希表part1
  • Mybatis的标签:if标签、where标签、choose,when标签、set标签
  • 【vs2022的C#窗体项目】打开运行+sql Server改为mysql数据库+发布
  • React学习———Immer 和 use-immer
  • 编译zstd
  • 《垒球百科全书》垒球是什么·棒球1号位
  • `asyncio.gather()` 是什么
  • 深度强化学习框架DI-engine
  • Java大师成长计划之第27天:RESTful API设计与实现
  • 算法竞赛 Java 高精度 大数 小数 模版
  • MySQL故障排查域生产环境优化
  • IIR 巴特沃斯II型滤波器设计与实现
  • React Contxt详解
  • 孤立森林和随机森林主要区别
  • Java实现:如何在文件夹中查找重复文件
  • 如何从容应对面试?
  • vi实时查看日志
  • UA 编译和建模入门教程(zhanzhi学习笔记)
  • 基于大模型的脑出血全流程预测系统技术方案大纲
  • 物联网安全技术的最新进展与挑战
  • 深入理解pip:Python包管理的核心工具与实战指南
  • (1-5)Java 常用工具类、包装类、StringStringBuilderString
  • 计算机存储与数据单位的核心定义及换算逻辑
  • 学习黑客 PowerShell 详解
  • 相机Camera日志分析之十五:高通相机Camx 基于预览1帧的ConfigureStreams Usecase完整过程日志分析详解
  • 辅助驾驶平权与出海,Mobileye的双重助力
  • Cursor 模型深度分析:区别、优缺点及适用场景
  • IOS 创建多环境Target,配置多环境
  • GK的作用是什么?
  • C语言指针深入详解(三):数组名理解、指针访问数组、一维数组传参的本质、冒泡排序、二级指针、指针数组、指针数组模拟二维数组