一、numpy的切片操作,一般结构如num[a:b,c:d],以逗号为分隔符,逗号之前为要取的num矩阵行的下标范围(a到b-1),逗号之后为要取的num矩阵列的下标范围(c到d-1);如果是这种num[:b,c:d],a的值未指定,默认a从0开始计数;如果是这种num[a:,c:d],b的值未指定,默认从a到最后一行;c、d的情况同理可得。
例1:
import numpy as np
num = np.arange(16).reshape((4,4 ))
print(num)
y=num[:3, :2]
print(y)
运行结果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[0 1]
[4 5]
[8 9]]
二、num[a:b,None],表示该维不进行切片,而是将该维整体作为数组元素处理,最后形成一个三维数组
例2;
import numpy as np
num = np.arange(16).reshape((4, 4))
print(num)
y=num[:3,None]
print(y)
运行结果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[[ 0 1 2 3]]
[[ 4 5 6 7]]
[[ 8 9 10 11]]]