python切片 *** 作-高维

python切片 *** 作-高维,第1张

python切片 *** 作-高维

文章目录
    • 原理
    • 示例代码

举例是用数组(array)举例的,同样适用于列表(List)和张量(Tensor)

原理

一维数据的切片和二、三维数组更高维的数据的切片有什么关联?

常见:
a[:-1] :一维数组,不要最后一个
a[1:] :一维数组,不要第0个,
b[:,:-1] : 二维数组,不要第二维的最后一个,即少了一列
c[:,:-1,:] :三维数组,只是不要第二维的最后一个
c[:,-1,:]:这里就是索引了,不是切片了,容易弄混乱,只要第二维最后一个元素

一维的切片: [start:end:step]:从start开始,不包括end,一般很少见到setp
二维甚至高维的:用逗号分隔每个维度就OKK

示例代码
import numpy as np
a= np.arange(6)
a
==>array([0, 1, 2, 3, 4, 5])
a[:-1]
==>array([0, 1, 2, 3, 4])
a[1:]
==>array([1, 2, 3, 4, 5])
b = np.arange(24).reshape(4,6)
b
==>array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])
b[:,:-1]
==>array([[ 0,  1,  2,  3,  4],
       [ 6,  7,  8,  9, 10],
       [12, 13, 14, 15, 16],
       [18, 19, 20, 21, 22]])
c = np.arange(24).reshape(2,3,4)
c
==>array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
c[:,:-1:]
==>array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19]]])
c[:,-1,:]
==>array([[ 8,  9, 10, 11],
       [20, 21, 22, 23]])

参考链接:https://blog.csdn.net/fr555wlj/article/details/108783091

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存