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入门相关推荐

  1. 第一章踏上python之旅_无言军神第一章踏上旅途,无言军神第1章踏上旅途_武侠仙侠_读趣阁...

    读趣阁 > 无言军神 > 第一章踏上旅途 第一章[一千年前,东雪帝国西部边疆]"希望有人发现我的笔记吧"说完,便放下笔记,飞身离去.[一千年后,现代,中国广东省]一中年 ...

  2. python差分方程求解_时间序列分析第一章 差分方程(Simulation)

    上一篇文章已经将差分方程的相关理论推导说明,本节将用代码将某些结论可视化. 一.一阶差分方程 1.递归法求解差分方程 给定y在t=-1期的值,以及w在t=0,1,2,...时期的值,则通过递归可以求出 ...

  3. python records库_你的第一份Python库源码阅读:records库

    基本介绍 records是kennethreitz的for Humans™系列,使用原生sql去操作大多数的关系型数据库(Postgresql, MySQL, SQLite, Oracle和 MS-S ...

  4. [转载] 《python程序设计应用教程》第一章 python语言概述

    参考链接: Python语言的优势和应用 第一章 python语言概述 1.1 python语言简介 ① 众多的开源的科学计算软件包都提供了python的调用接口,例如:计算机视觉库OpenCV.三维 ...

  5. 第一章 Python基础 ——一起搬砖打地基

    目录 前言 第一章 Python基础 1.表达式 2.整型.浮点型和字符串数据类型 3.字符串的连接和复制 字符串的连接--"+"操作符 字符串的复制--" * &quo ...

  6. 流畅的python读书笔记-第一章Python 数据模型

    第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collectionsCard = collections.namedtuple ...

  7. 学习《深入浅出python量化交易交易实战》第一章(笔记)

    1.学习<深入浅出python量化交易交易实战>第一章 记录学习过程中的代码和一些坑 1.1 基础(名词解释) 1.1.1 CAPM (Capital Asset Pricing Moda ...

  8. Python入门——第一章 python编程基础

    Python入门 文章目录 Python入门 第一章 python编程基础 1.1 基本输入输出 1.1.1使用print()函数进行简单输出 chr()函数 print()输出到指定文件 print ...

  9. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

最新文章

  1. 掩码语言模型(Masked Language Model)mlm
  2. nagios通过微信告警(无限制告警条数)
  3. windows下pycharm远程调试pyspark
  4. C#语言基础——7月21日
  5. Angular CLI 全局 ng.cmd 文件内容分析
  6. 服务器实际显示内存,服务器实际显示内存大小
  7. Java中子程序输出到输出文件中_Fortran 90中子例程和函数中的参数/变量的INTENT的含义...
  8. 【贪心】LeetCode 55. Jump Game
  9. cv_load_image_anycolor 什么意思_LOL英雄联盟手游use a ping什么意思?怎么给队友发信号?...
  10. servlet执行流程代码分析
  11. Qt QMake详解
  12. IOT | 物联网入门
  13. 【企业网络】我在51cto技术门诊的提问以及专家的解答汇总
  14. node.js是干什么的
  15. 基于NodeJS实现企业微信机器人推送
  16. svchost.exe“病毒”
  17. IOS小知识点5之内存警告、循环引用、交叉引用
  18. Thales Speakers Bureau:专家云集,将探讨量子技术、5G、数字身份、网络安全和人工智能
  19. 计算机的正确配置文件,显示器颜色配置文件在win10电脑中设置正确配置的方法...
  20. APS高级排程在钣金冲压行业的应用

热门文章

  1. OpenStack创建win7实例遇到的问题(尚未解决,求帮助)
  2. ubuntu16.04配置sonarqube+MySQL
  3. CAS去掉HTTPS认证
  4. Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景
  5. MYSQL进入客户端后切换服务器的简单做法试验
  6. 供来宾访问计算机打开安全吗,计算机安全设置操作手册(22页)-原创力文档
  7. matlab软件imag函数_「复变函数与积分变换」基本计算代码
  8. 430. 扁平化多级双向链表
  9. 理解Java里面的必检异常和非必检异常
  10. leetcode LCP 19. 秋叶收藏集(dp)