1. 程式人生 > >給numpy矩陣新增一行或一列

給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))
  • 與方法一效果完全相同