Numpy进阶¶
1D数组的索引和切片¶
创建数组
a = np.arrange(5) ** 2
索引元素
a[2]
索引2-5元素,前闭后开
a[2:5]
索引步长
a[::2] #步长为2
倒序索引
a[::-1]
索引列表
# 创建数组index
index = np.array([2, 1, 3, 0]) # 或index = [2, 1, 3, 0]
a[index]
array([4, 1, 9, 0], dtype=int32)
2D数组的索引和切片¶
numpy数组和普通数组
b = [[0,1,2],[3,4,5]]
b[1]
b[1][1]
b[1,1] #报错
2D数组索引¶
创建数组
a = np.arange(6).reshape(2,3)
取一行
a[1]
取一列
a[:,1]
取二维数组的一个元素
a[1][1]
a[1,1] #推荐这种写法
2D数组切片¶
a = np.arange(25).reshape(5,5)
- 切割红色数据
a[1,2:4]
- 切割绿色数据
a[3:,3:]
- 切割紫色数据
a[:,1]
- 切割黄色数据
a[::2,2::2]
numpy数组操作¶
numpy数组拆分¶
创建数组
a = np.arange(9).reshape(3,3)
按行拆分
np.vsplit(a,3)
按列拆分
np.hsplit(a,3)
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) 是错误的