Python numpy切片处理数据

对于一维数组[n:]表示从第n列开始取数据

import numpy as np

a=np.array([0,1,2,3,4,5,6,7,8])

a[5:]

输出的结果为:array([5, 6, 7, 8])

对于一位数组[n:m],表示从第n列开始,到m-1列结束

如 a[1;5]

输出的结果为:array([1,2,3,4])

 

对于二维矩阵;[n,:]表示取得是第n-1行,但是n-1必须小于等于矩阵的行数减一,等价与[n]

如:c=np.array([[0,1,2,3,4,5,6,7,8],
            [2,4,5,7,8,0,1,5,7],
            [5,2,8,4,0,9,7,4,4]
           ])
c[2,:]

输出的结果为:array([5, 2, 8, 4, 0, 9, 7, 4, 4])#表示输出的时矩阵的第三行,

对于二维矩阵[n:m,:]表示去矩阵的第n~m-1行数据,等价于[n:m]

c=np.array([[0,1,2,3,4,5,6,7,8],
            [2,4,5,7,8,0,1,5,7],
            [5,2,8,4,0,9,7,4,4]
           ])
c[1:2,:]

结果为:array([[2, 4, 5, 7, 8, 0, 1, 5, 7]])#取原矩阵的1~2-1行,即只取了矩阵的第二行

对于二维矩阵[:,m]表示取矩阵的第m+1列

如:c=np.array([[0,1,2,3,4,5,6,7,8],
            [2,4,5,7,8,0,1,5,7],
            [5,2,8,4,0,9,7,4,4]
           ])
c[:,2]

结果为:array([2, 5, 8])#去矩阵的第2+1列

对于二维矩阵[:,n:m]表示取矩阵的第n+1列至m列

c=np.array([[0,1,2,3,4,5,6,7,8],
            [2,4,5,7,8,0,1,5,7],
            [5,2,8,4,0,9,7,4,4]
           ])
c[:,2:5]

结果为:

array([[2, 3, 4],
       [5, 7, 8],
       [8, 4, 0]])#表示去矩阵的第三至五列

举个栗子:

b=np.array([[0,1,2,3,4,5,6,7,8],
            [2,4,5,7,8,0,1,5,7],
            [5,2,8,4,0,9,7,4,4]
           ])
area = (b[:, 2] - b[:, 0]) * (b[:, 3] - b[:, 1])

输出的结果为:array([4, 9, 6])

表示为矩阵的第三列减去矩阵的第一列乘上矩阵的第四列减去矩阵的第二列

对于三维矩阵[:,;,2]表示取矩阵的所有通道,所有行,第三列,取出的列组成新的行,比如取出的第一通道的第三列组成新矩阵的第一行

import torch

x=torch.rand(4,5,6)
x

 

 

 

 如果要取三维矩阵的某行,可以用[:,2]的形式:表示取所有通道的第3行,组成新矩阵

 

 

 

 

 

posted @ 2020-09-10 14:00  SnailWorks  阅读(480)  评论(0)    收藏  举报