Python创建行向量与列向量

numpy中直接创建ndarray,得到的是一维数组,也就是X.shape(X.size, );数学中定义的列向量是一个二维矩阵,大小是(X.size, 1).

于是,需要把1维的数组转化为2维的列向量,有扩充维度的两种方法:

  • X[:,np.newaxis]
  • X[:,None]

例如,想要实现矩阵与向量的相乘:

X0 = np.arange(6)            # 一维数组,不能与矩阵相乘
# array([0,1,2,3,4,5])
X0.shape
# (6,)
# X0 = X0[np.newaxis,:]      # 二维行向量,1*6
# X0 = X0[:,np.newaxis].T    # 二维行向量,1*6

# 1. np.newaxis
X01 = X0[:,np.newaxis]       # 二维列向量,6*1
X01.shape
# (6,1)

# 2. None
# 也可以这样,利用None关键字转化成向量
X02 = X0[:,None]

Phi_t0tf = np.array([[1,0,0,0,0,0],
                    [0,1,0,0,0,0],
                    [0,0,1,0,0,0],
                    [0,0,0,1,0,0],
                    [0,0,0,0,1,0],
                    [0,0,0,0,0,1]])

Xf  =  Phi_t0tf@X01    # 二维矩阵相乘

猜你喜欢

转载自blog.csdn.net/NICAI001/article/details/120346164
今日推荐