# 操作和分隔堆叠

# 操作

以下方法都是作为numpy的方法实现,而非ndarray类方法;并且都不会修改原有数组,而是返回处理后的结果。

  • append:将值添加到数组末尾

  • insert: 沿指定轴将值插入到指定下标之前

  • delete: 返回删掉某个轴的子数组的新数组

  • unique: 寻找数组内的唯一元素

    a = np.array([0,1,4,7,2,1,4,3])
    np.unique(a) # array([0, 1, 2, 3, 4, 7])
    b = np.array([[0,1,4,],[7,2,1],[4,3,0]])
    np.unique(b) # array([0, 1, 2, 3, 4, 7])
    

# 分隔

  • numpy级别的方法hsplit和vsplit方法可以沿着数组的水平轴和垂直轴拆分数组。
a = array([
	[ 9.,  5.,  6.,  3.,  6.,  8.,  0.,  7.,  9.,  7.,  2.,  7.],
	[ 1.,  4.,  9.,  2.,  2.,  1.,  0.,  6.,  2.,  2.,  4.,  0.]
	])
np.hsplit(a,3)   # 将数据均匀分割成3份
[array([[ 9.,  5.,  6.,  3.],[ 1.,  4.,  9.,  2.]]), 
 array([[ 6.,  8.,  0.,  7.],[ 2.,  1.,  0.,  6.]]),
 array([[ 9.,  7.,  2.,  7.],[ 2.,  2.,  4.,  0.]])]
np.hsplit(a,(3,4))   # 在指定的列位置,分割数组
[array([[ 9.,  5.,  6.],[ 1.,  4.,  9.]]),
 array([[ 3.],[ 2.]]),
 array([[ 6.,  8.,  0.,  7.,  9.,  7.,  2.,  7.],
       [ 2.,  1.,  0.,  6.,  2.,  2.,  4.,  0.]])]

# 堆叠

  • numpy级别的方法vstack和hstack分别在纵向和横向上堆叠数组。

注:参数以元组形式提供。

a = array([[ 8.,  8.],
       [ 0.,  0.]])
b = array([[ 1.,  8.],
       [ 0.,  4.]])
np.vstack((a,b))
array([[ 8.,  8.],
       [ 0.,  0.],
       [ 1.,  8.],
       [ 0.,  4.]])
np.hstack((a,b))
array([[ 8.,  8.,  1.,  8.],
       [ 0.,  0.,  0.,  4.]])