拼接
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
b = np.array([[1,2,3,4], [5,6,7,8]])
c = np.array([[1,2], [3,4], [5,6]])
图示操作仅适用于矩阵堆叠或向量堆叠,而一维数组和矩阵的混合堆叠只有通过vstack才可实现,hstack会导致维度不匹配错误。
- 一维数组和矩阵的混合堆叠
因为前文提到将一维数组作为行向量,而不是列向量。为此,可以将其转换为行向量,或使用专门的column_stack函数执行此操作:
np.vstack((a, [ 1, 2, 3, 4]))
np.hstack((a, np.array([ 1, 3, 4])[:, None]))
np.column_stack((a, [ 1, 3, 4]))
切分
np.hsplit(np.hstack((a, c)), [4])
np.vsplit(np.vstack((a, b)), [3])
复制
np.tile(a, [2,3])
a.repeat(3, axis=1)
a.repeat(2, axis=0)
删除
np.delete(a, [1,3], axis=1)
np.delete(a, 0, axis=0)
np.delete(a, np.s_[1:-1], axis=1)
np.delete(a, slice(1, -1), axis=1)
插入
np.insert(a, [1,3], 1, axis=1)
np.insert(a, 0, -1, axis=0)
np.insert(a, [2], c, axis=1)
np.append(a, np.zeros((3,2)), axis=1)
np.append(a, np.ones((3, 4)), axis=0)
np.pad(a, 1)
np.pad(a, ((1,2), (1,2)), constant_values=1)