NumPy数组切片与索引详解:从基础到多维应用

南乔
南乔
发布时间:2026-10-14| 6人浏览过
原创

本文详细介绍NumPy中ndarray对象的索引与切片机制。涵盖使用slice函数及冒号语法进行一维数组截取,包括start、stop、step参数的配置。深入解析多维数组的切片方法,如省略号...的使用及行列提取技巧,帮助开发者高效处理数据子集。

NumPy数组索引与切片基础

ndarray对象的内容可通过索引或切片方式访问和修改,其操作逻辑与Python内置list的切片行为保持一致。

ndarray数组支持基于0至n的下标索引。利用内置的slice函数,设定start、stop及step参数,可从原数组中提取并生成新数组。


import numpy as np
 
a = np.arange(10)
s = slice(2,7,2)  # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])

代码执行后的输出结果如下:

[2 4 6]

上述示例中,首先利用arange()函数构建ndarray对象。随后,将起始、终止及步长参数分别设置为2、7和2。

此外,也可通过冒号分隔切片参数start:stop:step的形式执行切片操作:

使用冒号语法进行切片


import numpy as np
 
a = np.arange(10) 
b = a[2:7:2]  # 从索引 2 开始到索引 7 停止,间隔为 2
print(b)

代码执行后的输出结果如下:

[2 4 6]

冒号(:)在切片中的含义如下:若仅传入一个参数(如[2]),则返回对应索引的单个元素;若使用[2:],表示提取从该索引开始至末尾的所有元素;若传入两个参数(如[2:7]),则提取从起始索引到停止索引(不含停止索引)之间的元素。


import numpy as np
 
a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
b = a[5] 
print(b)

代码执行后的输出结果如下:

5


import numpy as np
 
a = np.arange(10)
print(a[2:])

代码执行后的输出结果如下:

[2 3 4 5 6 7 8 9]


import numpy as np
 
a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
print(a[2:5])

代码执行后的输出结果如下:

[2 3 4]

上述索引提取方法同样适用于多维数组:

多维数组的切片与省略号应用


import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从某个索引处开始切割
print('从数组索引 a[1:] 处开始切割')
print(a[1:])

代码执行后的输出结果如下:

[[1 2 3] [3 4 5] [4 5 6]] 从数组索引 a[1:] 处开始切割 [[3 4 5] [4 5 6]]

切片操作中还可包含省略号(...),以使选择元组的长度与数组维度相匹配。若在行位置使用省略号,将返回包含该行元素的ndarray。


import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) 
print (a[...,1])  # 第2列元素
print (a[1,...])  # 第2行元素
print (a[...,1:]) # 第2列及剩下的所有元素

代码执行后的输出结果如下:

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

以上为NumPy切片与索引的完整解析,更多相关技术内容可参考本站其他文章。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。