python - 如何在Python中创建矩阵或将2D数组转换为矩阵?

标签 python arrays numpy matrix matrix-multiplication

我希望能够从Python的2D数组中提取一行或一列,以便保留2D形状并可以用于矩阵乘法。但是,我无法在documentation中找到最好的方法。例如,我可以使用

a = np.zeros(shape=(6,6)) 


创建数组,但是a [:,0]的形状为(6,),我无法将其乘以形状的矩阵(6,1)。我是否需要为每个矩阵乘法将数组的行或列整形为矩阵,或者是否有其他方法可以进行矩阵乘法?

最佳答案

您可以直接使用np.matrix

>>> a = np.zeros(shape=(6,6)) 
>>> ma = np.matrix(a)
>>> ma
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> ma[0,:]
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.]])


或者您可以使用np.newaxis添加尺寸

>>> a[0,:][np.newaxis, :]
array([[ 0.,  0.,  0.,  0.,  0.,  0.]])

关于python - 如何在Python中创建矩阵或将2D数组转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686637/

相关文章:

python - 分辨率列表(OpenCv、Python、相机)

python - 如何使用 python filecmp 忽略不同的换行符

python - 如何在python列表中创建和比较JSON值

arrays - 在 Swift 3 中将字符串转换为数组

java - 如何将java类型转换为java字符串[]?

python - 计算略有不同的矩阵乘法

python - 除了 RAM 之外,还有哪些因素限制了 Numpy 数组的大小,它们可以调整吗?

python - 获取列名列表所有值在 Python 中都是 NaN

python - 扩展numpy数组维度并 reshape

java - 3D 多维数组输出与初始化数据不匹配