博客
关于我
numpy学习笔记3-array切片
阅读量:796 次
发布时间:2023-02-17

本文共 1334 字,大约阅读时间需要 4 分钟。

NumPy 数组切片操作详解

1. NumPy 数组的基本定义

在 NumPy 中,数组是最基本的数据结构。以下代码创建一个 2x4 的二维数组:

import numpy as nparray1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

2. 切片操作的基本使用

2.1 单维切片

NumPy 的切片操作允许我们提取数组的一部分。以下代码提取第二行的第二到第四个元素:

array1_slice1 = array1[1][1:4]  # 等价于 array1_slice1 = array1[1, 1:4]array1_slice2 = array1[1][1:3]

查看 array1_slice1 的结果:

array1_slice1

输出结果为:

array([6, 7, 8])

查看 array1_slice2 的结果:

array1_slice2

输出结果为:

array([6, 7])

2.2 修改切片内容

切片操作会影响原始数组。以下代码将 array1_slice1 的所有元素设置为 0:

array1_slice1[:] = 0  # 等价于 array1_slice1[:] = [0, 0, 0]

此时,array1_slice1 的结果为:

array([0, 0, 0])

同时,原始数组 array1 也随之改变为:

array([[1, 2, 3, 4], [5, 0, 0, 0]])

需要注意的是,array1_slice2 也会受到影响:

array1_slice2

输出结果为:

array([0, 0])

3. 多维切片操作

3.1 行和列的混合切片

NumPy 允许我们同时指定行和列的范围。以下代码提取第一行和第二行的第二列到第四列:

array1[:2, 1:]

输出结果为:

array([[2, 3, 4], [0, 0, 0]])

3.2 只提取某一列

以下代码提取所有行的第二列:

array1[:2, 1]

输出结果为:

array([2, 0])

3.3 提取某一行的所有元素

以下代码提取第二行的所有元素:

array1[1]

输出结果为:

array([5, 0, 0, 0])

3.4 提取某一行到最后一列

以下代码提取第二行的所有列:

array1[1, :]

输出结果为:

array([5, 0, 0, 0])

3.5 提取从第二行到最后的所有行

以下代码提取从第二行到最后的所有行:

array1[1:, :]

输出结果为:

array([[5, 0, 0, 0]])

4. 切片的维度信息

我们可以通过 .shape 方法获取切片的维度信息。以下代码显示 array1[1, :] 的维度:

array1[1, :].shape

输出结果为:

(4,)

以下代码显示 array1[1:, :] 的维度:

array1[1:, :].shape

输出结果为:

(1, 4)

5. 总结

通过上述操作,我们可以清晰地看到 NumPy 切片操作的灵活性和强大。切片操作会直接影响原始数组,需要谨慎使用。理解多维切片是掌握 NumPy 功能的关键能力。

转载地址:http://dwnfk.baihongyu.com/

你可能感兴趣的文章
nodejs端口被占用原因及解决方案
查看>>
Nodejs简介以及Windows上安装Nodejs
查看>>
nodejs系列之express
查看>>
nodejs系列之Koa2
查看>>
Nodejs连接mysql
查看>>
nodejs连接mysql
查看>>
NodeJs连接Oracle数据库
查看>>
nodejs配置express服务器,运行自动打开浏览器
查看>>
NodeMCU教程 http请求获取Json中文乱码解决方案
查看>>
Nodemon 深入解析与使用
查看>>
NodeSession:高效且灵活的Node.js会话管理工具
查看>>
node~ http缓存
查看>>
node不是内部命令时配置node环境变量
查看>>
node中fs模块之文件操作
查看>>
Node中同步与异步的方式读取文件
查看>>
Node中的Http模块和Url模块的使用
查看>>
Node中自启动工具supervisor的使用
查看>>
Node入门之创建第一个HelloNode
查看>>
node全局对象 文件系统
查看>>
Node出错导致运行崩溃的解决方案
查看>>