给numpy矩阵添加一行或一列

方法1

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[0,0,0]])
c = np.r_[a,b]
d = np.c_[a,b.T]
print c
print d 

[[1 2 3]
[4 5 6]
[7 8 9]
[0 0 0]]

[[1 2 3 0]
[4 5 6 0]
[7 8 9 0]]

  • 该方法只能将两个矩阵合并

  • 注意要合并的两矩阵的行列关系

方法2

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[0,0,0]])
c = np.insert(a, 0, values=b, axis=0)
d = np.insert(a, 0, values=b, axis=1)
print c
print d

[[0 0 0]
[1 2 3]
[4 5 6]
[7 8 9]]

[[0 1 2 3]
[0 4 5 6]
[0 7 8 9]]

  • 这种是将一个集合插入到一个矩阵中,对于b可以是列表或元组,它仅仅提供要插入的值,但个数要对

  • np.insert的第二个参数是插入的位置,axis用来控制是插入行还是列,可见该方法非常灵活!

方法3

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[0,0,0]])
c = np.row_stack((a,b))
d = np.column_stack((a,b.T))
  • 与方法一效果完全相同

你可能感兴趣的:(python,numpy,python)