IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python三维数组切片 -> 正文阅读

[Python知识库]python三维数组切片

在这里插入图片描述

b = np.array([[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
              [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]],
              [[25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36]],
              ])
print(b.shape)
print(b) # 他输出的是三个zoy面,如上图所示
print(b[0, 0, 0])
print(b[0, 0, 1])
print(b[0, 0, 2])
print(b[0, 0, 3])
print(b[0, 1, 0])
print(b[0, 1, 1])
print(b[1, 0, 0])
print(b[1, 2, 3])
print()

(3, 3, 4)
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]

[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]

[[25 26 27 28]
[29 30 31 32]
[33 34 35 36]]]
1
2
3
4
5
6
13
24

上面的b[x, y, z] 中的x,y,z改成范围 ,就是切片 比如b[0:2, 0:2, 0:2] 表示范围是xyz的范围都是 [0, 2)
如果冒号两边没有指明范围就默认表示全部,如:b[0, 0, :]

print(b[0, 0, :])
print(b[0, :, 0])
print(b[:, 0, 0])
print()
print(b[0, 1, :])
print(b[1, :, 2])
print(b[:, 1, 0])
print()

[1 2 3 4]
[1 5 9]
[ 1 13 25]

[5 6 7 8]
[15 19 23]
[ 5 17 29]

类似于b[0, :, :] 两个冒号直接的逗号也可以省略,如:b[0, ::]
-1表示倒数第一个即最后一个

print(b[0, ::], b[0, ::].shape)
print(b[1, ::], b[1, ::].shape)
print(b[-1, ::], b[-1, ::].shape)
print(b[0:2, ::], b[0:2, ::].shape)

###############b[0, ::]######################
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]] (3, 4)

###############b[1, ::]######################
[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]] (3, 4)

############### b[0:2, ::] ######################
[[25 26 27 28]
[29 30 31 32]
[33 34 35 36]] (3, 4)

[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]

[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]] (2, 3, 4)
#############################################

print(b[:, 0:], b[:, 0:].shape)
print(b[:, 1:], b[:, 1:].shape)
print(b[:, -1:], b[:, -1:].shape)
print(b[:, 0:2:], b[:, 0:2:].shape)

###############b[:, 0:] ###################
b[:, 0:] 类似于b[:, :, :] , 第3维直接省略了就表示第3维全部都选,0: 只指明了起始为第0个位置没有指明切片结束的地方,也表示第2维全选。
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]

[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]

[[25 26 27 28]
[29 30 31 32]
[33 34 35 36]]] (3, 3, 4)
############## b[:, 1:]########################
b[:, 1:]表示 第1维和第3维全选,第2维从下标为1的开始切片到最后,看上图可推知结果。
[[[ 5 6 7 8]
[ 9 10 11 12]]

[[17 18 19 20]
[21 22 23 24]]

[[29 30 31 32]
[33 34 35 36]]] (3, 2, 4)
###############b[:, -1:]######################
b[:, -1:]表示第1维和第3维全选,第2维从最后一个到最后,就是输出最后一个
[[[ 9 10 11 12]]

[[21 22 23 24]]

[[33 34 35 36]]] (3, 1, 4)
############### b[:, 0:2:]######################
b[:, 0:2:] 表示第1维和第3维全选,第2维的切片范围是[0,2),即选取第0个和第1个。
写b[:, 0:2, :] 更好理解一些,省略一个逗号不太好理解,不过确实可以省略。
[[[ 1 2 3 4]
[ 5 6 7 8]]

[[13 14 15 16]
[17 18 19 20]]

[[25 26 27 28]
[29 30 31 32]]] (3, 2, 4)
#############################################

总结:只要不去省略逗号或者省略切片范围,切片还是很好理解的。而对于三维数组可能需要看看那个图。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:50:09  更:2021-10-19 11:52:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:52:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码