Python中获取矩阵行列号与维数的方法及常见错误排查

Mia
Mia
发布时间:2026-10-14 | 4人浏览过
原创

本文介绍在Python中如何使用shape、len和ndim属性查看矩阵的行列号、行数及维数。同时详细讲解通过pip安装numpy模块的步骤,并针对矩阵乘法中常见的维度对齐错误(如(4,)与(9,1)不对齐)进行排查分析,指出数据录入格式错误(如逗号误用)导致的计算失败及修正方法。

Python查看矩阵行列号与维数的方法

使用print(X.shape)可以查看矩阵的行列号。

使用print(len(X))可以查看矩阵的行数。

使用print(X.ndim)可以查看矩阵的维数。

1 查看矩阵的行列号

2 查看矩阵的行数

3 查看矩阵的维数

numpy模块安装与矩阵乘法注意事项

补充知识:Python之numpy模块的添加及矩阵乘法的维数问题

在Python中,numpy模块需要自行安装。大多数编程软件在安装时默认包含pip,因此可以利用pip命令进行安装。

具体操作为安装numpy模块。

首先打开电脑的命令提示符“cmd.exe”,界面如下图所示:

在命令行中输入“pip install numpy”,然后按回车键执行安装,过程如下图所示:

若为首次安装,屏幕会显示进度条。如图中所示,“Successfully installed numpy-1.14.5”表示已成功安装版本为1.14.5的numpy模块。

安装完成后,即可在编程中使用numpy模块。

关于矩阵乘法,numpy模块中通常使用dot()函数。需要注意的是,必须严格检查参与运算矩阵的维数,并保持细心。

以下代码在执行过程中会出现报错:

矩阵乘法维度报错排查与修正


import numpy as np

def nonlin(x,deriv=False):
 if (deriv==True):
  return x*(1-x)
 return 1/(1+np.exp(-x))

#input dataset
x=np.array([[0.05, 0.07, 1.26, 51,128983, 37.180962, 149.0759784, 4.368080458, 1.0132,  24.4777],
   [0.54, 0.18, 0.34, 30.83226759, 39.7490114, 12.70335148, 5.792655734, 4.66,  1.57],
   [0.47, 0.95, 2.01, 38.01532298, 3.080286601, 89.59062789, 5.349154432, 1.05,  0.461],
   [0.81, 1.06, 1.3, 77.882162, 59.17737344, 124.9541366, 5.259286248, 0.2105,  1.706]])
#output dataset
y=np.array([[15, 26, 33, 64]]).T
np.random.seed(1)
syn0=2*np.random.random((9,1))-1

for iter in range(10000):
 l0=x
 l1=nonlin(np.dot(l0,syn0))
 l1_error=y-l1
 l1_delta=l1_error*nonlin(l1,True)
 syn0+=np.dot(l0.T,l1_delta)
print ("Outout after training:")
print (l1)

报错信息如图所示:

报错指向代码第30行“l1=nonlin(np.dot(l0,syn0))”,提示形状为(4,)与(9,1)的矩阵无法对齐。此时应打印矩阵l0和syn0的维数以确认问题。

在“l1=nonlin(np.dot(l0,syn0))”语句的前一行添加命令“print(l0.shape)”和“print(syn0.shape)”,如下图所示:

结果显示矩阵l0和syn0的维数分别为(4,)与(9,1)。要使矩阵乘法成立,l0的形状应为(4,9)。此处矩阵l0作为输入数据,对应变量x。

经排查发现,输入数据的第一行中,有一个数值的小数点被错误地输入为逗号。需要修正上述代码中的输入数据:


#input dataset
x=np.array([[0.05, 0.07, 1.26, 51,128983, 37.180962, 149.0759784, 4.368080458, 1.0132,  24.4777],
   [0.54, 0.18, 0.34, 30.83226759, 39.7490114, 12.70335148, 5.792655734, 4.66,  1.57],
   [0.47, 0.95, 2.01, 38.01532298, 3.080286601, 89.59062789, 5.349154432, 1.05,  0.461],
   [0.81, 1.06, 1.3, 77.882162, 59.17737344, 124.9541366, 5.259286248, 0.2105,  1.706]])

修正后的数据如下:


#input dataset
x=np.array([[0.05, 0.07, 1.26, 51.128983, 37.180962, 149.0759784, 4.368080458, 1.0132,  24.4777],
   [0.54, 0.18, 0.34, 30.83226759, 39.7490114, 12.70335148, 5.792655734, 4.66,  1.57],
   [0.47, 0.95, 2.01, 38.01532298, 3.080286601, 89.59062789, 5.349154432, 1.05,  0.461],
   [0.81, 1.06, 1.3, 77.882162, 59.17737344, 124.9541366, 5.259286248, 0.2105,  1.706]])

修改后,代码执行成功。

以上这篇python查看矩阵的行列号以及维数方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表