python numpy数组含逗号的切片

普通切片操作:

list[首:尾:步长]

numpy数组切片操作:

数组名[首:尾,首:尾:步长](逗号用于区分维度,注意:逗号前面不能限定步长)

example 1:

import numpy as np
a = np.array([
    [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9],
     [11, 12, 13]])

b = a[:2, 1:]

print(b)

输出:
[[2 3]
[5 6]]

解释:b = a[:2, 1:]中,2是指取a的第0、1行(因为切片前闭后开),1是指取前边的取到的“子数组”的从第1列开始到最后的列。

example 2:

import numpy as np
a = np.array([
    [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9],
     [11, 12, 13]])

b = a[2:, :1]

print(b)

输出:
[[ 7]
[11]]

解释:b = a[2:, :1]中,2是指取a的从第2行之后的所有行,1指取前边得到的“子数组”第0列。
example 3:

import numpy as np
a = np.array([
    [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9],
     [11, 12, 13]])

b = a[2:, :1:-1]

print(b)

输出:
[[ 9]
[13]]

解释:b = a[2:, :1:-1]比 example 2 多个-1,意思是取 [ [ 7 8 9] , [11 12 13] ] 最后一列。

example 4:

import numpy as np
a = np.array([
    [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9],
     [11, 12, 13]])

b = a[:, :-1]

print(b)

输出:
[[ 1 2]
[ 4 5]
[ 7 8]
[11 12]]

解释:b = a[:, :-1]中,不指定取哪些行,即取整个数组,然后-1表示取整个数组除最后一列外的所有列(-1表示倒数第一列,-2表示倒数第二列…)。

总结:因此,逗号前的切片可以理解为取“行”,逗号后的切片理解为取“列”,且后半部分可以有步长。

参考了:
1、https://zhuanlan.zhihu.com/p/360751111

你可能感兴趣的:(数据处理,python,深度学习,开发语言)