蜻蜓点水-Python速成
道在屎溺。作为《深度学习入门》的阅读笔记,本文简略概述python
算数计算
print(1 - 2)
print(4 * 5)
print(7 / 5)
print(3 ** 2) # 乘方
-1
20
1.4
9
数据类型和Type函数
type(10)
int
type(2.718)
float
type("hello")
str
type(True)
bool
变量
x = 100
y = 3.14
print(x * y)
type(x * y)
# 是注释标识
314.0
float
列表
a = [1,2,3,4,5]
print(a)
len(a)
[1, 2, 3, 4, 5]
5
print(a[4])
a[4]=99
print(a)
5
[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} # 生成字典
print(me)
{'height': 180}
me['height']=70
print(me['height'])
70
布尔型
hungry = True
sleepy = False
type(hungry)
bool
not hungry
False
hungry and sleepy
False
hungry or sleepy
True
if语句
if hungry:
print('hungry')
elif sleepy:
print('sleepy')
else:
print('not hungry')
hungry
for 语句
for i in [1,2,3]:
print(i)
1
2
3
函数
def hello(object):
print("Hello " + object + "!")
hello("cat!")
Hello cat!!
类
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()
Initialized!
Hello David!
Good-bye David!
Numpy 速成
import numpy as np
x = np.array([1.,2.,3.])
print(x)
type(x)
y = np.array([2.0, 4.0, 6.0])
[1. 2. 3.]
以下是对应元素的运算,如果元素个数不同,程序就会报错,所以元素个数保持一致非常重要
print(x+y)
print(x-y)
print(x/y)
print(x*y)
[3. 6. 9.]
[-1. -2. -3.]
[0.5 0.5 0.5]
[ 2. 8. 18.]
NumPy数组不仅可以进行element-wise运算,也可以和单一的数值(标量)组合起来进行运算
x/2.0
array([0.5, 1. , 1.5])
Numpy的N维数组
A = np.array([[1, 2], [3, 4]])
B = np.array([[3, 0],[0, 6]])
print(A)
[[1 2]
[3 4]]
A.shape
(2, 2)
A.dtype
dtype('int32')
print(A+B)
[[ 4 2]
[ 3 10]]
print(A*B)
[[ 3 0]
[ 0 24]]
print(A*10)
[[10 20]
[30 40]]
广播
A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
A * B
array([[10, 40],
[30, 80]])
访问元素
X = np.array([[51, 55], [14, 19], [0, 4]])
X[0][1]
55
X[0]
array([51, 55])
for row in X:
print(row)
[51 55]
[14 19]
[0 4]
X = X.flatten()
print(X)
[51 55 14 19 0 4]
还有一些特殊的访问方法:
X[np.array([0, 2, 4])]
array([51, 14, 0])
X > 15
array([ True, True, False, True, False, False])
X[X>15]
array([51, 55, 19])
Matplolib 速成
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)
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()
from matplotlib.image import imread
img = imread('../dataset/lena.png') # 读入图像(设定合适的路径!)
plt.imshow(img)
plt.show()
评论已关闭