python矩阵乘法_鱼书——第一章 Python入门
one 第一章
1.1 Python是什么
Python是一个简单、易读、易记的编程语言,而且是开源的,可以免费地自由使用。Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻松地使用Python。特别是对首次接触编程的人士来说,Python是最合适不过的语言。事实上,很多高校和大专院校的计算机课程均采用Python作为入门语言。Python是最适合数据科学领域的编程语言。而且,Python具有受众广的优秀品质,从初学者到专业人士都在使用。因此,为了完成本书的从零开始实现深度学习的目标,Python可以说是最合适的工具。
1.2 Python的安装
Python有2.x和3.x的区别,现在使用的一般均为Python3.x。两个常用的库:NumPy是用于数值计算的库,提供了很多高级的数学算法和便利的数组(矩阵)操作方法。本书中将使用这些便利的方法来有效地促进深度学习的实现。Matplotlib是用来画图的库。使用Matplotlib能将实验结果可视化,并在视觉上确认深度学习运行期间的数据。
1.3Python解释器
可以配置PyCharm进行编写。我对PyCharm的认识大概相当于Rstudio之对于R软件的作用。方便程序的编写、运行调试。在PyCharm界面左下角处点击"Python consolo"就会出来Python的交互页面。也相当于Python解释器的对话模型。
1.3.1 基本运算
*表示乘法,/表示除法,**表示乘方(3**2是3的2次方)。另外,在Python 2.x中,整数除以整数的结果是整数,比如,7 ÷ 5的结果是1。但在Python 3.x中,整数除以整数的结果是小数(浮点数)。
1.3.2 数据类型
编程中有数据类型(data type)这一概念。数据类型表示数据的性质,有整数、小数、字符串等类型。Python中的type()函数可以用来查看数据类型。
1.3.3 变量
可以使用x或y等字母定义变量(variable)。此外,可以使用变量进行计算,也可以对变量赋值。Python是属于“动态类型语言”的编程语言,所谓动态,是指变量的类型是根据情况自动决定的。“#”是注释的意思,它后面的文字会被Python忽略。
1.3.4 列表
除了单一的数值,还可以用列表(数组)汇总数据。
元素的访问是通过a[0]这样的方式进行的。[]中的数字称为索引(下标),索引从0开始(索引0对应第一个元素)。此外,Python的列表提供了切片(slicing)这一便捷的标记法。使用切片不仅可以访问某个值,还可以访问列表的子列表(部分列表)。
1.3.5 字典
列表根据索引,按照0, 1, 2, ...的顺序存储值,而字典则以键值对的形式存储数据。字典就像《新华字典》那样,将单词和它的含义对应着存储起来。
1.3.6 布尔型
Python中有bool型。bool型取True或False中的一个值。针对bool型的运算符包括and、or和not (针对数值的运算符有+、-、*、/等,根据不同的数据类型使用不同的运算符)。
1.3.7 if语句
根据不同的条件选择不同的处理分支时可以使用if/else语句。
>>> hungry = True>>> if hungry:... print("I’m so hungry.")... I’m so hungry.>>> hungry = False>>> if hungry:... print("I’m so hungry.")... else:... print("I’m not hungry at all.")... print("I'm tired.")... I’m not hungry at all.I'm tired.
Python中的空白字符具有重要的意义。上面的if语句中,if hungry:下面的语句开头有4个空白字符。它是缩进的意思,表示当前面的条件(if hungry)成立时,此处的代码会被执行。这个缩进也可以用tab表示,Python中推荐使用空白字符。
1.3.8 for 语句
进行循环处理时可以使用for语句,可以按顺序访问列表等数据集合中的各个元素。
>>> for i in ["I","am","not","a","good","guy"]:... print(i)... Iamnotagoodguy
1.3.9 函数
可以将一连串的处理定义成函数 (function)。
>>> def hello():... print("Hello World!")... hello()Hello World!
此外,函数可以取参数。
>>> def hello(object):... print("Hello " + object + "!")...>>> hello("cat")Hello cat!
1.4 NumPy
>>> import numpy as np
Python中使用import语句来导入库。这里的import numpy as np,直译的话就是“将numpy作为np导入”的意思。通过写成这样的形式,之后NumPy相关的方法均可通过np来调用。要生成NumPy数组,需要使用np.array()方法。np.array()接收Python列表作为参数,生成NumPy数 组(numpy.ndarray)。
>>> x = np.array([1.0, 2.0, 3.0])>>> print(x)[ 1. 2. 3.]>>> type(x)<class 'numpy.ndarray'>
下面是NumPy数组的算术运算的例子。
>>> x = np.array([1.0, 2.0, 3.0])>>> y = np.array([2.0, 4.0, 6.0])>>> x + y # 对应元素的加法array([ 3., 6., 9.])>>> x - yarray([ -1., -2., -3.])>>> x * y # element-wise productarray([ 2., 8., 18.])>>> x / yarray([ 0.5, 0.5, 0.5])
这里需要注意的是,数组x和数组y的元素个数是相同的(两者均是元素个数为3的一维数组)。当x和y的元素个数相同时,可以对各个元素进行算术运算。如果元素个数不同,程序就会报错,所以元素个数保持一致非常重要。另外,“对应元素的”的英文是element-wise,比如“对应元素的乘法”就是element-wise product。NumPy数组不仅可以进行element-wise运算,也可以和单一的数值(标量)组合起来进行运算。此时,需要在NumPy数组的各个元素和标量之间进行运算。
>>> x = np.array([1.0, 2.0, 3.0])>>> x / 2.0array([ 0.5, 1. , 1.5]
NumPy不仅可以生成一维数组(排成一列的数组),也可以生成多维数组。
>>> A = np.array([[1, 2], [3, 4]])>>> print(A)[[1 2] [3 4]]>>> A.shape(2, 2)>>> A.dtypedtype('int64')
矩阵A的形状可以通过shape查看,矩阵元素的数据类型可以通过dtype查看。NumPy中,形状不同的数组之间也可以进行运算。之前的例子中,在2×2的矩阵A和标量10之间进行了乘法运算。在这个过程中,如图1-1所示,标量10被扩展成了2 × 2的形状,然后再与矩阵A进行乘法运算。这个巧妙的功能称为广播 (broadcast)。
我们通过下面这个运算再来看一个广播的例子。
>>> A = np.array([[1, 2], [3, 4]])>>> B = np.array([10, 20])>>> A * Barray([[ 10, 40], [ 30, 80]])
1.5 Matplotlib
在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。这里,我们来介绍一下图形的绘制方法和图像的显示方法。可以使用matplotlib的pyplot模块绘制图形。话不多说,我们来看一个绘制sin函数曲线的例子。
import numpy as npimport matplotlib.pyplot as plt# 生成数据x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据y = np.sin(x)# 绘制图形plt.plot(x, y)plt.show()
就会得到图1-3:
在刚才的sin函数的图形中,我们尝试追加cos函数的图形,并尝试使用pyplot的添加标题和x轴标签名等其他功能。
import numpy as npimport matplotlib.pyplot as plt# 生成数据x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据y1 = np.sin(x)y2 = np.cos(x)# 绘制图形plt.plot(x, y1, label="sin")plt.plot(x, y2, linestyle = "--", label="cos") # 用虚线绘制plt.xlabel("x") # x轴标签plt.ylabel("y") # y轴标签plt.title('sin & cos') # 标题plt.legend()plt.show()
就会得到图1-4:
今天就到这里啦!
大家都要加油鸭!
春风不度玉门关,
我佛不渡铁憨憨。
雕栏玉砌应犹在,
点赞完了点在看。
- end -
图文源鱼书
公众号:一枝花满楼
python矩阵乘法_鱼书——第一章 Python入门相关推荐
- 第一章踏上python之旅_无言军神第一章踏上旅途,无言军神第1章踏上旅途_武侠仙侠_读趣阁...
读趣阁 > 无言军神 > 第一章踏上旅途 第一章[一千年前,东雪帝国西部边疆]"希望有人发现我的笔记吧"说完,便放下笔记,飞身离去.[一千年后,现代,中国广东省]一中年 ...
- python差分方程求解_时间序列分析第一章 差分方程(Simulation)
上一篇文章已经将差分方程的相关理论推导说明,本节将用代码将某些结论可视化. 一.一阶差分方程 1.递归法求解差分方程 给定y在t=-1期的值,以及w在t=0,1,2,...时期的值,则通过递归可以求出 ...
- python records库_你的第一份Python库源码阅读:records库
基本介绍 records是kennethreitz的for Humans™系列,使用原生sql去操作大多数的关系型数据库(Postgresql, MySQL, SQLite, Oracle和 MS-S ...
- [转载] 《python程序设计应用教程》第一章 python语言概述
参考链接: Python语言的优势和应用 第一章 python语言概述 1.1 python语言简介 ① 众多的开源的科学计算软件包都提供了python的调用接口,例如:计算机视觉库OpenCV.三维 ...
- 第一章 Python基础 ——一起搬砖打地基
目录 前言 第一章 Python基础 1.表达式 2.整型.浮点型和字符串数据类型 3.字符串的连接和复制 字符串的连接--"+"操作符 字符串的复制--" * &quo ...
- 流畅的python读书笔记-第一章Python 数据模型
第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collectionsCard = collections.namedtuple ...
- 学习《深入浅出python量化交易交易实战》第一章(笔记)
1.学习<深入浅出python量化交易交易实战>第一章 记录学习过程中的代码和一些坑 1.1 基础(名词解释) 1.1.1 CAPM (Capital Asset Pricing Moda ...
- Python入门——第一章 python编程基础
Python入门 文章目录 Python入门 第一章 python编程基础 1.1 基本输入输出 1.1.1使用print()函数进行简单输出 chr()函数 print()输出到指定文件 print ...
- 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...
第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...
最新文章
- 掩码语言模型(Masked Language Model)mlm
- nagios通过微信告警(无限制告警条数)
- windows下pycharm远程调试pyspark
- C#语言基础——7月21日
- Angular CLI 全局 ng.cmd 文件内容分析
- 服务器实际显示内存,服务器实际显示内存大小
- Java中子程序输出到输出文件中_Fortran 90中子例程和函数中的参数/变量的INTENT的含义...
- 【贪心】LeetCode 55. Jump Game
- cv_load_image_anycolor 什么意思_LOL英雄联盟手游use a ping什么意思?怎么给队友发信号?...
- servlet执行流程代码分析
- Qt QMake详解
- IOT | 物联网入门
- 【企业网络】我在51cto技术门诊的提问以及专家的解答汇总
- node.js是干什么的
- 基于NodeJS实现企业微信机器人推送
- svchost.exe“病毒”
- IOS小知识点5之内存警告、循环引用、交叉引用
- Thales Speakers Bureau:专家云集,将探讨量子技术、5G、数字身份、网络安全和人工智能
- 计算机的正确配置文件,显示器颜色配置文件在win10电脑中设置正确配置的方法...
- APS高级排程在钣金冲压行业的应用
热门文章
- OpenStack创建win7实例遇到的问题(尚未解决,求帮助)
- ubuntu16.04配置sonarqube+MySQL
- CAS去掉HTTPS认证
- Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景
- MYSQL进入客户端后切换服务器的简单做法试验
- 供来宾访问计算机打开安全吗,计算机安全设置操作手册(22页)-原创力文档
- matlab软件imag函数_「复变函数与积分变换」基本计算代码
- 430. 扁平化多级双向链表
- 理解Java里面的必检异常和非必检异常
- leetcode LCP 19. 秋叶收藏集(dp)