切片(list和numpy多维数组)

1 numpy多维数组的切片用法

c = np.array([[[0,1,2],[4,5,6],[8,7,5],[10,11,12]],[[6,2,3],[9,8,34],[100,101,102],[110,111,112]]])
c
array([[[  0,   1,   2],
        [  4,   5,   6],
        [  8,   7,   5],
        [ 10,  11,  12]],
       [[  6,   2,   3],
        [  9,   8,  34],
        [100, 101, 102],
        [110, 111, 112]]])
# c的shape是2 4 3  2指的是从最外面的括号向下一级括号看,下一级括号有两个,所以是2,
# 3指的是从最后一级括号向内看,维数为3,所以是3
c.shape
(2, 4, 3)
# 这里的:即把shape[0]和shape[1]都包含了
c[:,1]
array([[ 4,  5,  6],
       [ 9,  8, 34]])
c[1,:]
array([[  6,   2,   3],
       [  9,   8,  34],
       [100, 101, 102],
       [110, 111, 112]])
c[0:2,1:2,2:3]
array([[[ 6]],
       [[34]]])
a[::-1] # 逆序输出
View Code

2 list二维数组切片

注意它的用法不够灵活,无法实现直接切片出某一列,要用for循环才能实现

a = [[1,2,3,4], [5,6,7,8], [9,10,11,12]]
print(a[:])
print(a[:][1:3])
# 想要切片某一列,这是错误写法
print(a[0:2][1:2])
# 正确写法
print([a[k][1:2] for k in range(3)])
# [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# [[5, 6, 7, 8], [9, 10, 11, 12]]
# [[5, 6, 7, 8]]
# [[2], [6], [10]]
View Code

ttt

 

posted on 2019-06-29 20:46  吃我一枪  阅读(580)  评论(0编辑  收藏  举报

导航