本文为深度学习入门:基于Python的理论与实现的学习笔记,由于笔者已有matalb、c\c++,java相关语言基础,故只记录不同之处需要注意的地方,供给有其他有语言基础,没学过python但研究方向为机器学习等分支方向的同学参考。
Python索引左闭右开
eg a[0:2] #索引0~2的元素(不包括2)的元素
索引0对应第一个元素
索引-1对应最后一个元素
字典以键值对形式存储数据 {‘height’:180}
循环处理时可以使用for语句
语句结构 for i in [1,2,3]:
将一连串处理定义为函数
>>>def hello():
print(“Hello world!”)
>>>hello()
Hello World!
>>>def hello(object):
print(“Hello”+object+”!”)
>>>hello(“cat”)
Hello cat!
Python用class关键字来定义类,类要遵循下述格式(模板)
Class 类名:
def __init__(self,参数,…): #构造函数
…
def 方法名1(self,参数,…): #方法1
…
def 方法名2(self,参数,…): #方法2
__init__方法是进行初始化的方法,也称为构造函数,只在生成类的实例时被调用一次。
在方法的一个参数中明确地写入表示自身(自身的实例)的self。
实例变量时存储在各个实例的变量。
self.xxx,通过在self后面添加属性名来生成或访问实例变量。
>>>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)
当x和y的元素个数相同时,对各个元素进行算术运算。 “对应元素的”称为element-wise
也可以和单一的数值(标量)组合起来进行运算,称为广播
>>> A = np.array([[1,2],[3,4]])
>>> print(A)
[[1 2]
[3 4]]
>>>A.shape
(2,2)
>>>A.dtype
dtype(‘int64’)
矩阵的形状可以通过shape查看,矩阵元素的数据类型可以通过dtype查看。
当两个数组形状并不相同时,我们可以通过扩展数组的方法来实现相加,相减,相乘等操作。
可以使用matplotlib的pyplot模块绘制图形
Import matplotlib.pyplot as plt
将数据传给plt.plot,然后绘制图形。通过plt.show()显示图形。
# 绘制图形
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()
Pyplot还提供了用于显示图像的方法imshow()。可以用matplotlib.image的模块的imread()方法读入图像。
import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread('lena.png') # 读入图像(设定合适的路径!)
plt.imshow(img)
plt.show()
本章只介绍了关于Python的最低限度的知识,想进一步了解Python的读者,可以参考下面这些图书。首先推荐《Python 语言及其应用》 [1] 一书。这是一本详细介绍从Python 编程的基础到应用的实践性的入门书。关于NumPy,《利用Python进行数据分析》 [2] 一书中进行了简单易懂的总结。此外,“Scipy Lecture Notes”[3] 这个网站上也有以科学计算为主题的NumPy和Matplotlib 的详细介绍。
Python / NumPy
[1] Bill Lubanovic. Introducing PythonA. O’Reilly Media, 2014.
[2] Wes McKinney. Python for Data AnalysisB. O’Reilly Media.
[3] Scipy Lecture Notes.