目录
numpy
Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
【相关用法】
import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
# 打印数组
print(arr) # 输出:[1 2 3 4 5]
# 计算数组的平均值
mean = np.mean(arr)
print(mean) # 输出:3.0
# 计算数组的最大值和最小值
max_value = np.amax(arr)
min_value = np.amin(arr)
print(max_value) # 输出:5
print(min_value) # 输出:1
np.zeros()
【相关用法】
np.zeros(5)
运行结果:
array ( [ 0. , 0. , 0. , 0. , 0.] )
np.zeros((4,),dtype = int)
运行结果:
array ( [ 0 , 0 , 0 , 0 ] )
np.zeros((2,3))
运行结果:
array ( [ [ 0. , 0. , 0.] ,
[ 0. , 0. , 0.] ] )
np.ones()
np.ones(3)
运行结果:
array ( [ 1. , 1. , 1. ] )
np.ones((3,),dtype = int)
运行结果:
array ( [ 1 , 1 , 1 ] )
np.ones((2, 3))
运行结果:
array ( [ [ 1. , 1. , 1. ] ,
[ 1. , 1. , 1.] ] )
np.prod()
np.prod([2.,3.])
运行结果: 6.0 ——计算所有元素的乘积
np.prod([2.,3.][4.,5.])
运行结果: 120.0 ——数组是二维的,计算所有元素的乘积
np.prod([[2.,3.][4.,5.]],axis=1)
运行结果:
array ( [ 6. , 20. ] )——axis=1,水平方向乘积→
np.prod([[2.,3.][4.,5.]],axis=0)
运行结果:
array ( [ 8. , 15. ] )——axis=1,竖直方向乘积
pandas
Pandas是python的一个数据分析包,提供了大量能使我们快速便捷地处理数据的函数和方法
import pandas as pd
# 创建Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
# 创建DataFrame
df = pd.DataFrame(np.random.randn(6, 4), columns=list('ABCD'))
print(df)
3.读取和写入数据
# 读取csv文件
df = pd.read_csv('file.csv')
# 写入csv文件
df.to_csv('file.csv', index=False)
4.数据清洗和处理
# 删除缺失值
df.dropna()
# 填充缺失值
df.fillna(value=0)
# 替换值
df.replace(1, 'one')
5.数据分组和聚合
# 按列分组并计算平均值
df.groupby('column_name').mean()
# 按列分组并计算总和
df.groupby('column_name').sum()
# 按列分组并计算数量
df.groupby('column_name').count()
Path
from pathlib import Path
是Python中用于导入pathlib
模块中的Path
类的语句。
Path
类提供了一种面向对象的方式来处理文件系统路径和相关操作。使用Path
类,可以轻松地创建、访问、操作和删除文件和目录。
from pathlib import Path
# 创建一个新文件
file_path = Path("example.txt")
file_path.touch()
# 向文件中写入文本
with file_path.open(mode="w") as file:
file.write("Hello, world!")
# 读取文件内容并打印
with file_path.open() as file:
print(file.read())
matplotlib
是一个 Python 的绘图库,可以用来创建各种静态、动态、交互式的图表、图形和可视化界面。pyplot 是 matplotlib 的一个子模块,快速绘制各种类型的图表。
from matplotlib import pyplot as plt
【作用】是将 pyplot 子模块导入,并将其命名为 plt,这样在后续的代码中就可以使用 plt 来调用 pyplot 中的函数
【例子】 plt.plot() 用于绘制折线图,
plt.scatter() 用于绘制散点图等等。
cv2
是Python中用于图像处理和计算机视觉的开源库。
它提供了许多用于加载、处理和保存图像的函数和方法。
1. 导入cv2库:在Python中,我们可以使用import cv2语句将cv2库导入到我们的代码
2. 图像加载:cv2库提供了imread()函数,用于从文件中加载图像。例如,我们可以使用以下代码加载一张图像:
img = cv2.imread('image.jpg')
3. 图像显示:cv2库提供了imshow()函数,用于在窗口中显示图像。例如,我们可以使用以下代码显示加载的图像:
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4. 图像保存:cv2库提供了imwrite()函数,用于将图像保存到文件中。例如,我们可以使用以下代码将图像保存为新的文件:
cv2.imwrite('new_image.jpg', img)
5. 图像处理:cv2库提供了许多函数和方法用于对图像进行处理,如调整大小、裁剪、旋转、滤波等。例如,我们可以使用以下代码调整图像的大小:
resized_img = cv2.resize(img, (width, height))
6. 视频处理:除了图像处理,cv2库还提供了函数和方法用于处理视频。例如,我们可以使用以下代码从摄像头捕获视频:
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
cv2.imshow('Video', frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
tensorflow
import tensorflow as tf
【简介】TensorFlow是一个开源的机器学习框架,它提供了丰富的工具和库,用于构建和训练各种机器学习模型。
【例子】
tf.keras模块来构建神经网络模型,
tf.data模块来处理和准备数据,
tf.train模块来定义训练过程
***************************************
tensorflow.keras
***************************************
import layers
from tensorflow.keras import layers
是一个Python模块,它提供了一组用于构建深度神经网络的层。这些层包括卷积层、池化层、全连接层、循环层等等。使用这些层可以方便地构建各种类型的神经网络,例如卷积神经网络、循环神经网络、自编码器等等。这个模块是TensorFlow的高级API之一,它使得构建和训练深度神经网络变得更加容易和高效。
【常用的层】
1. Conv2D:二维卷积层,用于处理图像数据。
2. MaxPooling2D:二维最大池化层,用于减小特征图的尺寸。
3. Dense:全连接层,用于将前一层的所有节点与当前层的所有节点相连。
4. LSTM:长短时记忆循环层,用于处理序列数据。
5. Dropout:随机失活层,用于防止过拟合。
【构建神经网络】
from tensorflow.keras import layers
model = keras.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10)
])
这个模型包含三个卷积层和两个全连接层,用于对MNIST手写数字数据集进行分类。
***************************************
import regularizers
from tensorflow.keras import regularizers
regularizers是一个用于正则化神经网络模型的模块。正则化是一种防止过拟合的技术,它通过在模型的损失函数中添加额外的惩罚项来限制模型的复杂度。
该模块提供 正则化方法:包括L1正则化、L2正则化和弹性网络正则化等。
在使用这个模块时,可以通过在层的构造函数中指定相应的正则化器来对该层进行正则化。例如,可以使用L2正则化器来对一个全连接层进行正则化:
from tensorflow.keras.layers import Dense
from tensorflow.keras import regularizers
model.add(Dense(64,input_dim=64,activation='relu',
kernel_regularizer=regularizers.l2(0.01)))
这里使用了L2正则化器,并将正则化系数设置为0.01。这意味着在计算该层的损失函数时,将会添加一个L2范数惩罚项,以限制该层权重的大小。
********************************
import Model
from tensorflow.keras.models import Model
是用于构建 Keras 模型的类。它是一个高级模型类,可以让你定义更加复杂的模型,
例如多输入或多输出模型,共享层模型等。
与 Sequential 模型不同,Model 类需要明确指定输入和输出,并且需要定义每一层的输入和输出。通常情况下,Model 类被用于构建更加灵活和复杂的神经网络模型。
*********************************
import plot_model
from tensorflow.keras.utils import plot_model
是一个用于绘制 Keras 模型结构图的工具函数。
它可以将 Keras 模型绘制成一个图形化的结构图,方便我们更好地理解和调试模型。
【构建全连接神经网络模型并绘制】
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.utils import plot_model
# 定义模型结构
inputs = Input(shape=(10,))
x = Dense(64, activation='relu')(inputs)
outputs = Dense(1, activation='sigmoid')(x)
model = Model(inputs=inputs, outputs=outputs)
# 绘制模型结构图
plot_model(model, to_file='model.png', show_shapes=True)
这段代码定义了一个简单的全连接神经网络模型,
并使用 `plot_model` 函数将其绘制成一个结构图,并保存为 `model.png` 文件。`show_shapes=True` 参数表示在图中显示每个层的输入输出形状
**************************
import Adam
from tensorflow.keras.optimizers import Adam
是一个Python代码行,它导入了TensorFlow库中的Adam优化器。
Adam是一种常用的优化算法,用于调整神经网络模型的权重和偏置,以最小化训练数据上的损失函数。通过使用Adam优化器,可以更快地收敛到模型的最优解。
Adam优化器结合了Adagrad和RMSprop算法的优点,具有自适应学习率的特性。它根据每个参数的梯度和历史梯度平方的指数移动平均来更新参数。这种自适应学习率的方法可以在训练过程中自动调整学习率,从而提高模型的训练效果。
【Adam优化器使用】
from tensorflow.keras.optimizers import Adam
# 创建模型
model = ...
# 编译模型并指定优化器为Adam
model.compile(optimizer=Adam(learning_rate=0.001), loss='mse', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32)
我们首先导入了Adam优化器,然后在模型的编译阶段将优化器设置为Adam,并指定了学习率为0.001。接下来,我们可以使用`model.fit()`方法来训练模型。
***********************************
import ModelCheckpoint
from tensorflow.keras.callbacks import ModelCheckpoint
【简介】是一个Keras回调函数,用于在训练期间保存模型的权重。它可以在每个epoch或在满足某些条件时保存模型的权重。这个回调函数可以帮助我们在训练过程中保存最好的模型,以便在训练结束后使用。
【ModelCheckpoint参数】
- filepath:保存模型权重的路径。
- monitor:监测的指标,如val_loss或val_accuracy。
- save_best_only:是否只保存最好的模型。
- save_weights_only:是否只保存模型的权重而不是整个模型。
- mode:监测指标的模式,如min、max或auto。
- verbose:日志输出的详细程度。
【例子】
from tensorflow.keras.callbacks import ModelCheckpoint
checkpoint_path = "model_checkpoint.h5"
checkpoint = ModelCheckpoint(checkpoint_path, monitor='val_accuracy', verbose=1,
save_best_only=True, mode='max')
model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val),
callbacks=[checkpoint])
这个例子中,我们定义了一个ModelCheckpoint回调函数,将监测验证集上的准确率,并且只保存最好的模型。在训练过程中,我们将这个回调函数传递给fit()方法的callbacks参数中。