python日常学习之:slice 函数的用法

  • 以下操作均通过 jupyter notebook 完成,因此很多地方没有 print,大家看的时候不要困惑~

一维数据进行 slice

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
lst = [1,2,3,4,5,6,7,8]
'''slice_ 代表的是从位置 0 的数据开始切分,末尾数据的 index 是 6,每隔 2 个数据进行切分'''
slice_ = slice(0,6,2)
slice_
slice(0, 6, 2)
lst[slice_]
[1, 3, 5]
'''python 自带的数组切分得到的是一样的结果'''
lst[0:6:2]
[1, 3, 5]

高维数据 slice


data = np.zeros((28,32,32))

'''
将每一个通道的数据都表示为这个通道的索引号
'''
for i in range(data.shape[0]):
    data[i,:,:] = i
    
data.shape
(28, 32, 32)
print(data[1])
print(data[2])
[[1. 1. 1. ... 1. 1. 1.]
 [1. 1. 1. ... 1. 1. 1.]
 [1. 1. 1. ... 1. 1. 1.]
 ...
 [1. 1. 1. ... 1. 1. 1.]
 [1. 1. 1. ... 1. 1. 1.]
 [1. 1. 1. ... 1. 1. 1.]]
[[2. 2. 2. ... 2. 2. 2.]
 [2. 2. 2. ... 2. 2. 2.]
 [2. 2. 2. ... 2. 2. 2.]
 ...
 [2. 2. 2. ... 2. 2. 2.]
 [2. 2. 2. ... 2. 2. 2.]
 [2. 2. 2. ... 2. 2. 2.]]
slices = slice(23,28)
data[slices].shape
(5, 32, 32)
for i in data[slices]:
    print(i)
[[23. 23. 23. ... 23. 23. 23.]
 [23. 23. 23. ... 23. 23. 23.]
 [23. 23. 23. ... 23. 23. 23.]
 ...
 [23. 23. 23. ... 23. 23. 23.]
 [23. 23. 23. ... 23. 23. 23.]
 [23. 23. 23. ... 23. 23. 23.]]
[[24. 24. 24. ... 24. 24. 24.]
 [24. 24. 24. ... 24. 24. 24.]
 [24. 24. 24. ... 24. 24. 24.]
 ...
 [24. 24. 24. ... 24. 24. 24.]
 [24. 24. 24. ... 24. 24. 24.]
 [24. 24. 24. ... 24. 24. 24.]]
[[25. 25. 25. ... 25. 25. 25.]
 [25. 25. 25. ... 25. 25. 25.]
 [25. 25. 25. ... 25. 25. 25.]
 ...
 [25. 25. 25. ... 25. 25. 25.]
 [25. 25. 25. ... 25. 25. 25.]
 [25. 25. 25. ... 25. 25. 25.]]
[[26. 26. 26. ... 26. 26. 26.]
 [26. 26. 26. ... 26. 26. 26.]
 [26. 26. 26. ... 26. 26. 26.]
 ...
 [26. 26. 26. ... 26. 26. 26.]
 [26. 26. 26. ... 26. 26. 26.]
 [26. 26. 26. ... 26. 26. 26.]]
[[27. 27. 27. ... 27. 27. 27.]
 [27. 27. 27. ... 27. 27. 27.]
 [27. 27. 27. ... 27. 27. 27.]
 ...
 [27. 27. 27. ... 27. 27. 27.]
 [27. 27. 27. ... 27. 27. 27.]
 [27. 27. 27. ... 27. 27. 27.]]
data[23:28,:,:]
array([[[23., 23., 23., ..., 23., 23., 23.],
        [23., 23., 23., ..., 23., 23., 23.],
        [23., 23., 23., ..., 23., 23., 23.],
        ...,
        [23., 23., 23., ..., 23., 23., 23.],
        [23., 23., 23., ..., 23., 23., 23.],
        [23., 23., 23., ..., 23., 23., 23.]],

       [[24., 24., 24., ..., 24., 24., 24.],
        [24., 24., 24., ..., 24., 24., 24.],
        [24., 24., 24., ..., 24., 24., 24.],
        ...,
        [24., 24., 24., ..., 24., 24., 24.],
        [24., 24., 24., ..., 24., 24., 24.],
        [24., 24., 24., ..., 24., 24., 24.]],

       [[25., 25., 25., ..., 25., 25., 25.],
        [25., 25., 25., ..., 25., 25., 25.],
        [25., 25., 25., ..., 25., 25., 25.],
        ...,
        [25., 25., 25., ..., 25., 25., 25.],
        [25., 25., 25., ..., 25., 25., 25.],
        [25., 25., 25., ..., 25., 25., 25.]],

       [[26., 26., 26., ..., 26., 26., 26.],
        [26., 26., 26., ..., 26., 26., 26.],
        [26., 26., 26., ..., 26., 26., 26.],
        ...,
        [26., 26., 26., ..., 26., 26., 26.],
        [26., 26., 26., ..., 26., 26., 26.],
        [26., 26., 26., ..., 26., 26., 26.]],

       [[27., 27., 27., ..., 27., 27., 27.],
        [27., 27., 27., ..., 27., 27., 27.],
        [27., 27., 27., ..., 27., 27., 27.],
        ...,
        [27., 27., 27., ..., 27., 27., 27.],
        [27., 27., 27., ..., 27., 27., 27.],
        [27., 27., 27., ..., 27., 27., 27.]]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值