Python入门
Python
算术计算: *表示乘法,/表示除法,**表示乘方
列表索引: 切片(slicing)标记法,可以访问某个值,也可以访问列表的子列表;索引访问;for循环访问
bool运算符: and、or、not
类: __init__为构造函数(constructor),用于初始化;方法的第一个参数中明确写入代表自身(自身的实例)的self
print("------算数计算-------")
a=1-2
b=4*5
c=7/5
d=3**2
# 错误:print("算数计算结果:"+a+", "+b+", "+c+", "+d) Python不允许直接将整数类型和字符串类型进行拼接操作
print(f"算数计算结果:{a},{b},{c},{d}")
print("算数计算结果:{},{},{},{}".format(a, b, c, d))
print("------数据类型-------")
# 错误:print(type(10)+type(2.74759)+type("Hello")) Python 不支持将 type 类型的对象与其他类型进行相加
print(type(10))
print(type(2.74759))
print(type("Hello"))
print("------变量-------")
x=10
print(f"x={x}")
x=100
print(f"x={x}")
y=3.14
print(f"x*y={x*y}")
print(type(x*y))
print("------列表-------")
a=[1,2,3,4,5,6,7]
print("列表:{},长度为{}".format(a,len(a)))
print("第1个数:{};第5个数:{}".format(a[0],a[4]))
a[4]=99
print(a)
print(a[1:4])
print(a[1:])
print(a[:4]) # 取到索引为4的元素,不包括4
print(a[:-1]) # 去掉倒数一个
print(a[:-2]) # 去掉倒数两个
print("------字典-------")
me={"height":180}
print("我的身高:{}".format(me["height"]))
me["weight"]=60
print(me)
print("------布尔型-------")
hungry = True
sleepy = False
print(not hungry)
print(f"hungry and sleepy:{hungry and sleepy}")
print(f"hungry or sleepy:{hungry or sleepy}")
print("------if-------")
hungry = True
if hungry:
print("I'm hungry")
hungry = False
if hungry:
print("I'm hungry")
else:
print("I'm not hungry")
print("I'm sleepy")
print("------for-------")
for i in [1,2,3,4]:
print(i)
print("------函数-------")
def hello():
print("Hello World!")
hello()
def hello(name):
print("Hello "+name+"!")
# 错误: hello(Anni) 没有将参数 Anni 包裹在引号中,导致被解释为变量
hello("Anni")
print("------类-------")
class Man:
def __init__(self,name):
self.name = name
print("Initialized!")
def hello(self):
print("Hello "+self.name+"!")
def goodbye(self):
print("Goodbye "+self.name+"!")
m=Man("Dany")
m.hello()
m.goodbye()
输出:
Numpy
生成Numpy数组: np.array()方法
N维数组: shape查看数组形状;dtype查看数组元素的数据类型;一维数组:向量,二维数组:矩阵,三维数组:张量
广播: 处理形状不同的数组间的运算,将标量扩展成合适的形状
访问元素: 索引访问;for循环访问;数组访问;不等式访问
import numpy as np
print("------生成Numpy数组--------")
x = np.array([1, 2, 3, 4, 4])
print(x)
print(type(x))
print("------Numpy算数运算--------")
# element-wise运算
x=np.array([1.,2.,3.])
y=np.array([2.,4.,6.])
print(f"x+y={x+y}")
print(f"x-y={x-y}")
print(f"x/y={x/y}")
# 元素的标量运算
x=np.array([1.,2.,3.])
print(f"x/2={x/2.}")
print("------Numpy的N维数组--------")
A=np.array([[1,2],[3,4]])
print(A)
print(f"shape:{A.shape}") # 矩阵形状
print(f"dtype:{A.dtype}") # 矩阵元素的数据类型
print(f"A*10=\n{A*10}")
B=np.array([[3,0],[2,3]])
print(f"A+B=\n{A+B}")
print(f"A*B=\n{A*B}")
print("------广播--------")
A=np.array([[1,2],[3,4]])
B=np.array([5,6])
print(f"A*B=\n{A*B}")
print("------访问元素--------")
# 索引访问 1
X=np.array([[51,33],[13,75],[35,87]])
print(X)
print(f"第0行:{X[0]}")
print(f"(0,1)的元素:{X[0,1]}")
# 索引访问 2
for row in X:
print(row)
# 数组访问
X=X.flatten()
print(X)
print(f"索引为0,2,4的元素:{X[np.array([0,2,4])]}")
# 不等式访问
print(X>15)
print(f"找出大于15的:{X[X>15]}")
输出:
Matplotlib
import numpy as np
# 错误:import matplotlib as plt
import matplotlib.pyplot as plt
import matplotlib.image as mping
# 绘制简单图像
# 1. 生成数据
x = np.arange(0,6,0.1) # 以0.1外单位,生成0-6的数据
y = np.sin(x)
# 2. 绘制图形
plt.plot(x,y)
plt.show()
# pyplot的功能
# 1. 生成数据
x= np.arange(1,6,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 2. 绘制图形
plt.plot(x,y1,label="sin")
plt.plot(x,y2,linestyle="--",label="con") # 虚线描绘
plt.xlabel("x") # x标签
plt.ylabel("y") # y标签
plt.title("sin & cos") # 标题
plt.legend() # 调用 plt.legend() 函数生成图例
plt.show()
# 现实图像
img = mping.imread("../materials/1.jpg")
plt.imshow(img)
plt.show()
输出: