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数组索引

1570087092993

创建数组

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)

2d_indexing

  • 切割红色数据
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) 是错误的