python 增加矩阵行列和维数
方法1
- np.r_
- np.c_
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
- np.insert
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
- np.row_stack
- np.column_stack
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.expand_dims(a, axis)
>>> x = np.array([1,2]) >>> x.shape (2,) >>> y = np.expand_dims(x, axis=0) >>> y array([[1, 2]]) >>> y.shape (1, 2) >>> y = np.expand_dims(x, axis=1) # Equivalent to x[:,newaxis] >>> y array([[1], [2]]) >>> y.shape (2, 1)