python查看矩阵的行列号以及维数方式
作者:唯唯落落 发布时间:2021-03-25 20:24:58
print(X.shape):查看矩阵的行列号
print(len(X)):查看矩阵的行数
print(X.ndim):查看矩阵的维数
1 查看矩阵的行列号
2 查看矩阵的行数
3 查看矩阵的维数
补充知识:Python之numpy模块的添加及矩阵乘法的维数问题
在Python中,numpy 模块是需要自己安装的,在安装编程软件时,默认安装了pip,因此我们可以用pip命令来安装
numpy模块。
首先打开电脑的“cmd.exe”,如下图所示:
在这里输入“pip install numpy”,然后按回车键来安装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)
报错如图所示:
这里的第三十行就是上述代码中的“l1=nonlin(np.dot(l0,syn0))”,这里提示(4,)与(9,1)不对齐,然后打印一下矩阵l0和syn0
的维数,即将命令“print(l0.shape)”和“print(syn0.shape)”放在“l1=nonlin(np.dot(l0,syn0))”的前一行,如下图所示:
发现矩阵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]])
然后代码执行成功。
来源:https://blog.csdn.net/S09M03J/article/details/101604418


猜你喜欢
- 0. 学习目标线性表在计算机中的表示可以采用多种方法,采用不同存储方法的线性表也有着不同的名称和特点。线性表有两种基本的存储结构:顺序存储结
- 今天做项目时,有一个这样的需求,需要动态删除的Tab,比如:可以删除某一个,可以删除多个。每一个Tab对应一个iframe。本来我的代码是这
- 平时学生交上机作业的时候经常有人相互复制,直接改文件名了事,为了能够简单的检测这种作弊行为,想到了检测文件的MD5值,虽然对于抄袭来说作用不
- 我为 Compose 写了一个波浪效果的进度加载库,API 的设计上符合 Compose 的开发规范,使用非常简便。1. 使用方式在 roo
- 原先的ctrl+alt+L容易和各种软件的快捷键冲突在setting——keymap——右边搜索栏搜索Reformat Code就会出现该设
- 例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Na
- 这篇文章主要是把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护加密自己的代码,编译asp代码为dll组件我想这个是最好的保
- OpenCV函数原型:cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, i
- 试一试这个办法:struserlist = struserlist & "<
- 有点抱歉的是我的数学功底确实是不好,经过了高中的紧张到了大学之后松散了下来。原本高中就有点拖后腿的数学到了大学之后更是一落千丈。线性代数直接
- 1、下载从官网下载mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz,版本为5.7.19下载地址:http
- 本文实例讲述了JS截取与分割字符串的常用方法。分享给大家供大家参考,具体如下:JS截取字符串可使用 substring()或者slice()
- 写一个学生管理系统,最好用python。我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- 打开VS2013 —> 工具 —> 选项 —> 环境 —> 字体和颜色 —> 纯文本(显示项中) —>
- 本文记录了python 3.7.0 安装配置方法,供大家参考,具体内容如下S1 登入Python官网下载网址S2 下载后缀为exe的可执行文
- 安装redis服务1 下载redis cd /usr/local/ 进入安装目录 wget http://downl
- 目录一、简介1、优势2、劣势二、安装三、locust的库和方法介绍1、from locust import task2、from locus
- 使用Python开发的同学一定听说过Requsts库,它是一个用于发送HTTP请求的测试。如比我们用Python做基于HTTP协议的接口测试
- 本文实例讲述了VC基于ADO技术访问数据库的方法。分享给大家供大家参考。具体如下:一、在StdAfx.h文件中添加#import "