Python实践37是指《Python编程从入门到实践》这本经典教材中提到的37个Python项目实践。这些项目涵盖了Python编程语言的各个方面,从基础知识到高级应用,对于初学者和有一定经验的开发者都非常有益。下面将从多个方面对Python实践37进行详细阐述。
一、数据分析与可视化
1、项目1:天气数据可视化
import pandas as pd import matplotlib.pyplot as plt # 读取并处理数据 data = pd.read_csv("weather.csv") data['date'] = pd.to_datetime(data['date']) data['year'] = data['date'].dt.year data['month'] = data['date'].dt.month # 绘制柱状图 plt.bar(data['year'], data['temperature']) plt.xlabel("Year") plt.ylabel("Temperature") plt.title("Weather Temperature") plt.show()
通过读取天气数据并利用Pandas和Matplotlib库进行处理和可视化,展示了不同年份的气温情况。
2、项目2:电影评分分析
import pandas as pd import seaborn as sns # 读取数据 data = pd.read_csv("movies.csv") # 绘制热力图 pivot_table = data.pivot_table(values='rating', index='genre', columns='year') sns.heatmap(pivot_table, cmap='coolwarm') plt.title("Movie Ratings by Genre and Year") plt.show()
该项目通过对电影评分数据的分析,利用Seaborn库绘制了一个热力图,展示了不同类型电影在不同年份的得分情况。
二、Web应用开发
1、项目1:个人博客
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/blog') def blog(): return render_template('blog.html') if __name__ == '__main__': app.run()
使用Flask框架搭建个人博客网站,通过路由控制不同的页面,使用模板渲染引擎呈现内容。
2、项目2:在线图书商城
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/search') def search(): keyword = request.args.get('keyword') # 根据关键词搜索图书 ... if __name__ == '__main__': app.run()
该项目是一个简单的在线图书商城,使用Flask框架实现页面的渲染和搜索功能。
三、机器学习与人工智能
1、项目1:鸢尾花分类
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 加载数据 iris = load_iris() X, y = iris.data, iris.target # 分割数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练模型 model = KNeighborsClassifier() model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test)
通过使用sklearn库的鸢尾花数据集,训练一个K最近邻分类器来对鸢尾花进行分类。
2、项目2:图像分类
import tensorflow as tf from tensorflow.keras.datasets import cifar10 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten # 加载数据集 (X_train, y_train), (X_test, y_test) = cifar10.load_data() # 数据预处理 X_train = X_train / 255.0 X_test = X_test / 255.0 # 构建模型 model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3))) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dense(10)) # 编译和训练模型 model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))
该项目使用TensorFlow和Keras库构建了一个卷积神经网络模型,对CIFAR-10数据集中的图像进行分类。