1.安装与库
python3.x
外部库:NumPy(数值计算)和Matplotlib(画图)
2.python解释器
版本:python–version
Python解释器也被称为“对话模式”,用户能够以和Python对话的方式进行编程。比如,当用户询问“1 + 2等于几?”的时候,Python解释器会回答“3”
1 + 2
3
数据类型:函数type()
type(10)
class ’ int’
type(2.718)
class ’ float’
type(“hello”)
class ’ str’
变量:Python属于“动态类型语言”的编程语言,所谓动态,是指变量的类型是根据情况自动决定的。在上面的例子中,用户并没有明确指出“x的类型是int(整型)”,是Python根据x被初始化为10,从而判断出x的类型为int的。此外,我们也可以看到,整数和小数相乘的结果是小数(数据类型的自动转换)。
列表:
a=[1,2,3,4,5]
切片:使用切片不仅可以访问某个值,还可以访问列
表的子列表(部分列表)。
print(a)
[1, 2, 3, 4, 99]
a[0:2] 获取索引为0到2(不包括2!)的元素
[1, 2]
a[1:] 获取从索引为1的元素到最后一个元素
[2, 3, 4, 99]
a[:3] 获取从第一个元素到索引为3(不包括3!)的元素
[1, 2, 3]
a[:-1] 获取从第一个元素到最后一个元素的前一个元素之间的元素
[1, 2, 3, 4]
a[:-2] 获取从第一个元素到最后一个元素的前二个元素之间的元素
[1, 2, 3]
字典:以键值对形式存储数据。
me = {‘height’:180} # 生成字典
me[‘height’] # 访问元素
180
me[‘weight’] = 70 # 添加新元素
print(me)
{‘height’: 180, ‘weight’: 70}
布尔型:True/False
if语句:
if hungry:
… print(“I’m hungry”) # 使用空白字符进行缩进
… else:
… print(“I’m not hungry”)
… print(“I’m sleepy”)
for语句:
for i in [1, 2, 3]:
… print(i)
…
1
2
3
函数:
def hello(object):
… print("Hello " + object + “!”)
…
hello(“cat”)
Hello cat!
3.python脚本文件
保存为文件
hungry.py
print(“I’m hungry!”)
类:class关键字
class 类名:
def init(self, 参数, …): # 构造函数,初始化方法,只在生成类的实例时被调用一次。此外,在方法的第一个参数中明确地写入表示自身(自身的实例)的self是Python的一个特点
def 方法名1(self, 参数, …): # 方法1
例如
class Man:
def init(self, name):
self.name = name
print(“Initialized!”)
def hello(self):
print("Hello " + self.name + “!”)
def goodbye(self):
print("Good-bye " + self.name + “!”)
m = Man(“David”)
m.hello()
m.goodbye()
从终端运行man.py。
$ python man.py
Initialized!
Hello David!
Good-bye David!
4.NumPy
应用:数组、矩阵等
导入:
import numpy as np
生成NumPy数组:array()方法
x=np.array([1.0,2.0,3.0])
print(x)
[1.2.3]
type(x)
class ‘numpy.ndarray’>
运算:当数组元素相同,可算数运算,不同则报错;标量运算
N维数组:shape()查看矩阵形状,dtype()查看矩阵元素的数据类型
A = np.array([[1, 2], [3, 4]])
print(A)
[[1 2]
[3 4]]
A.shape
(2, 2)
A.dtype
dtype(‘int64’)
算数运算
B = np.array([[3, 0],[0, 6]])
A + B
array([[ 4, 2],
[ 3, 10]])
A * B
array([[ 3, 0], [ 0, 24]])
print(A)
[[1 2]
[3 4]]
A * 10
array([[ 10, 20], [ 30, 40]])
广播:NumPy中,形状不同的数组之间也可以进行运算。2×2的矩阵A和标量10进行乘法运算,标量10被扩展成了2 × 2形状,然后再与矩阵A进行乘法运算。这个巧妙的功能称为广播(broadcast)。
A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
A * B
array([[ 10, 40], [ 30, 80]])
访问元素:元素索引从0开始,用索引;用for;用数组
for row in X:
… print(row)
…
[51 55]
[14 19]
[0 4]
X = X.flatten() # 将X转换为一维数组
print(X)
[51 55 14 19 0 4]
X[np.array([0, 2, 4])] # 获取索引为0、2、4的元素
array([51, 14, 0])
X > 15
array([ True, True, False, True, False, False], dtype=bool)
X[X>15]
array([51, 55, 19])
5.Matplotlib
绘制sin()曲线
import numpy as np
import 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()
绘制sin()、cos()曲线+坐标轴标签等
import numpy as np
import 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()
显示图像:pyplot 提供用于显示图像的方法 imshow().另外,matplotlib.image模块的imread()方法可读入图像
import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread(‘lena.png’) # 读入图像
plt.imshow(img)
plt.show()