numpy切片
numpy1D 数组的切片和索引¶
创建数组
a = np.arange(5) ** 2
索引元素
a[2]
索引2-5元素,前闭后开
a[2:5]
索引步长
a[::2] #步长为2
倒序索引
a[::-1]
numpy2D数组索引¶
创建数组
a = np.arange(1,6).reshape(3,2)
取一行
a[1]
取一列
a[:,1]
取二维数组的一个元素
a[1][1]
a[1,1] #推荐这种写法
numpy2D数组和普通python数组区别¶
b = [[0,1,2],[3,4,5]]
b[1]
b[1][1]
b[1,1] #报错
numpy2D数组切片¶
a = np.arange(25).reshape(5,5)
- 切割红色数据
a[1,2:4]
- 切割绿色数据
a[3:,3:]
- 切割紫色数据
a[:,1]
- 切割黄色数据
a[::2,2::2]
- 切割红色区域
a[[0,2,4],[0,2,4]] #推荐这种写法
或者
a[(0, 2, 4), (0, 2, 4)]
- 切割绿色区域
a[[1,3,4],3:]
- 切割紫色区域
mask = np.array([False, True, True, True, False])
a[1, mask]
numpy数组合并¶
创建两个数组
a = np.array([[0, 1], [2, 3]])
b = np.array([[0, -1], [-2, -3]])
上下合并
np.vstack([a,b])
水平合并
np.hstack([a,b])
注意语法: np.vstack(a,b) 或者 np.vstack(a,b) 是错误的
numpy高级操作¶
创建数组a
a = np.arange(5) ** 2
array([ 0, 1, 4, 9, 16], dtype=int32)
创建数组i
i = np.array([3, 1, 3, 0])
array([3, 1, 3, 0])
用i数组,索引a的元素
a[i]
array([9, 1, 9, 0], dtype=int32)