第一章 python入门
1.检查python版本:打开终端(搜索框输入cmd),输入如下代码:
python --version
如图可见,本人python版本为3.11.2
2.python NumPy的广播功能(broadcast),可以使不同形状的数组之间进行运算。
3.第一节部分复现代码如下:
import numpy as np # 将numpy作为np导入
import matplotlib.pyplot as plt
# x = np.array([1.0,2.0,3.0]) # np.array()方法接收列表作为参数,生成NumPy数组(numpy.ndarray)
# print(x)
# print(type(x))
# y = np.array([2.0,4.0,6.0])
# print(x + y)
# print(x - y)
# print(x * y)
# print(x / 2)
A = np.array([[1,2],[3,4]])
# print(A)
# print(A.shape) # 查看矩阵形状
# print(A.dtype) # 查看矩阵元素数据类型
B = np.array([[3,0],[6,0]])
# print(A + B)
# print(A * B)
# print(A * 10)
# print(A[0]) # 索引,第0行
# print(A[0,1]) # 索引,第0,1个元素
# for row in A:
# print(row)
X = np.array([[51,55],[14,19],[0,4]])
X = X.flatten()
# print(X)
# print(X[np.array([0,2,4])]) # X[np.array([0,2,4])]返回一个新的一维数组,包含X数组中第0、2和4个元素的值
# print(X > 15)
# print(X[X > 15])
# x = np.arange(0,6,0.1) # 以0.1为单位,生成0到6的数据
# y = np.sin(x)
# plt.plot(x,y) # 绘制图形
# plt.show() # 显示图形
# x = np.arange(0,6,0.1)
# y1 = np.sin(x)
# y2 = np.cos(x)
# plt.plot(x,y1,label="sin")
# plt.plot(x,y2,linestyle = "--",label="cos")
# plt.xlabel("x")
# plt.ylabel("y")
# plt.title('sin&cos')
# plt.legend()
# plt.show()
# from matplotlib.image import imread
# img = imread("文件路径")
# plt.imshow(img) # imshow()函数用于显示图像
# plt.show() # show()函数用于显示图像窗口
第二章 简单逻辑电路
1.感知机:接收多个输入信号,输出一个信号。
2.与门:两个输入均为1时输出为1,其他时候输出0
3.与非门:颠倒与门的输出,两个输入均为1时输出为0,其他时候输出1
4.或门:只要由一个信号输入1,输出就是1
5.感知机无法直接实现异或门,组合感知机可以实现异或门,代码如下:
import numpy as np
def AND(x1,x2): # 与门
x = np.array([x1,x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
def NAND(x1,x2): # 与非门
w1,w2,theta = -0.5,-0.5,-0.7
tmp = x1*w1 + x2*w2
if tmp < theta:
return 0
elif tmp >= theta:
return 1
def OR(x1,x2): # 或门
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.2
tmp = np.sum(x*w) + b
if tmp <= 0:
return 0
else:
return 1
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
print(y)
XOR(0,0)
XOR(1,0)
XOR(0,1)
XOR(1,1)
第三章 神经网络
1.阶跃函数的实现代码及图形代码如下:
# 阶跃函数实现中用到的Numpy的技巧
# x = np.array([-1.0,1.0,2.0])
# print(x)
# y = x > 0 # x大于0,输出True
# print(y)
# # .astype方法转换Numpy数组的类型,通过参数指定期望的类型
# y = y.astype(int) # np.int被弃用
# print(y)
def step_function(x):
print(x)
y = x > 0
print(y)
print(type(y))
y = y.astype(int) # 使用.astype方法,输入需要使用数组,否则会报错
return y
print(step_f