python---之给numpy数组增加一行或者一列

转载:https://blog.csdn.net/u010159842/article/details/52957313

问题的定义:

首先我们有一个数据是一个m n的numpy矩阵现在我们希望能够进行给他加上一列变成一个m (n+1)的矩阵

 
  1. import numpy as np

  2. a = np.array([[1,2,3],[4,5,6],[7,8,9]])

  3. b = np.ones(3)

  4. c = np.array([[1,2,3,1],[4,5,6,1],[7,8,9,1]])

  5. print(a)

  6. print(b)

  7. print(c)

  8.  
  9. [[1 2 3]

  10. [4 5 6]

  11. [7 8 9]]

  12. [ 1. 1. 1.]

  13. [[1 2 3 1]

  14. [4 5 6 1]

  15. [7 8 9 1]]

我们要做的就是把a,b合起来变成c

方法一

使用 np.c_[] 和 np.r_[] 分别添加行和列

 
  1. np.c_[a,b]

  2. array([[ 1., 2., 3., 1.],

  3. [ 4., 5., 6., 1.],

  4. [ 7., 8., 9., 1.]])

  5. np.c_[a,a]

  6. array([[1, 2, 3, 1, 2, 3],

  7. [4, 5, 6, 4, 5, 6],

  8. [7, 8, 9, 7, 8, 9]])

  9. np.c_[b,a]

  10. array([[ 1., 1., 2., 3.],

  11. [ 1., 4., 5., 6.],

  12. [ 1., 7., 8., 9.]])

方法二

使用 np.insert

 
  1. np.insert(a, 0, values=b, axis=1)

  2. array([[1, 1, 2, 3],

  3. [1, 4, 5, 6],

  4. [1, 7, 8, 9]])

  5. np.insert(a, 3, values=b, axis=1)

  6. array([[1, 2, 3, 1],

  7. [4, 5, 6, 1],

  8. [7, 8, 9, 1]])

方法三

使用'column_stack'

 
  1. np.column_stack((a,b))

  2.  
  3.  
  4.  
  5.  
  6. array([[ 1., 2., 3., 1.],

  7. [ 4., 5., 6., 1.],

  8. [ 7., 8., 9., 1.]])

你可能感兴趣的:(python学习笔记)