一、Python数据分析的崛起
Python最初被设计为一种通用的、解释型的高级编程语言,用于多种应用,包括网站开发、脚本编写、自动化运维等。然而,随着数据科学的兴起,Python逐渐在数据分析领域崭露头角。其强大的数据处理能力、丰富的数据分析库以及活跃的社区支持,使得Python成为了数据分析师和数据科学
家的首选工具。
二、Python数据分析的核心库:
Python数据分析的核心库主要包括NumPy、Pandas、Matplotlib、Seaborn和Scikit-Learn等。
三、掌握NumPy数组对象
1、创建NumPy数组以下是一些示例:
import numpy as np
# 使用numpy.array()从Python列表创建数组
arr1 = np.array([1, 2, 3, 4, 5])
# 使用numpy.zeros()创建指定形状的全零数组
arr2 = np.zeros((3, 3))
# 使用numpy.ones()创建指定形状的全一数组
arr3 = np.ones((2, 2))
# 使用numpy.arange()创建指定范围的数组
arr4 = np.arange(0, 10, 2) # 从0开始,到10(不包括),步长为2
2、NumPy数组索引和切片:
# 索引
element = arr1[2] # 获取第三个元素
# 切片
slice_of_arr = arr1[1:4] # 获取第二个到第四个元素(不包括第四个)
3、重塑:
# 将一维数组重塑为二维数组
reshaped_arr = arr1.reshape((1, 5))
4、NumPy数组的数学运算(矩阵、函数):
# 元素级运算
arr7 = np.array([1, 2, 3])
arr8 = np.array([4, 5, 6])
elementwise_sum = arr7 + arr8
# 聚合运算
sum_of_arr = np.sum(arr7)
mean_of_arr = np.mean(arr7)
# 线性代数运算(需要二维数组)
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
matrix_product = np.dot(A, B) # 矩阵乘法
四、Pandas统计分析基础
1、Pandas支持多种数据格式的读取,如CSV、Excel、SQL、JSON等。以下是一个使用Pandas读取CSV文件的示例:
import pandas as pd
# 读取CSV文件
df = pd.read_csv('data.csv')
# 显示数据的前几行
print(df.head())
2、数据清洗是数据分析中不可或缺的一步,Pandas提供了丰富的数据清洗功能,如缺失值处理、重复值处理、数据类型转换等。
# 处理缺失值
df.fillna(value=0, inplace=True) # 将缺失值填充为0
# 删除重复行
df.drop_duplicates(inplace=True)
# 数据类型转换
df['column_name'] = df['column_name'].astype('float')
3、Pandas提供了多种数据筛选的方法,如基于条件表达式筛选、基于布尔索引筛选等。
# 基于条件表达式筛选
filtered_df = df[df['column_name'] > 10]
# 基于布尔索引筛选
mask = (df['column_name1'] > 5) & (df['column_name2'] < 20)
filtered_df = df[mask]
4、Pandas的groupby功能允许你根据一个或多个列的值对数据进行分组,并对每个组执行聚合操作。
# 根据'group_column'列的值对数据进行分组,并计算每组的平均值
grouped = df.groupby('group_column').mean()
print(grouped)
5、Pandas提供了许多统计分析方法,如描述性统计、相关性分析、假设检验等。以下是一些常用的统计分析方法示例:
# 描述性统计
desc_stats = df.describe()
print(desc_stats)
# 相关性分析
correlation_matrix = df.corr()
print(correlation_matrix)
# 假设检验(以t检验为例)
from scipy import stats
t_statistic, p_value = stats.ttest_ind(df['group1']['column_name'], df['group2']['column_name'])
print(f"t statistic: {t_statistic}, p-value: {p_value}")
Pandas是一个功能强大的数据分析工具,通过掌握其基本数据结构和常用的统计分析方法,你可以更加高效地进行数据分析和处理。
五、使用Pandas进行数据预处理
0、Pandas是一个开源的Python库,它提供了快速、灵活且富有表达力的数据结构,以便你能够轻松地进行数据清洗、转换、分析和可视化。
1、在使用Pandas进行数据预处理之前,首先需要将数据加载到Python环境中。Pandas支持多种数据格式的读取,如CSV、Excel、SQL、JSON等。以下是一个使用Pandas读取CSV文件的示例:
import pandas as pd
# 读取CSV文件
df = pd.read_csv('data.csv')
# 显示数据的前几行
print(df.head())
2、处理缺失值:
# 替换缺失值为0
df.fillna(0, inplace=True)
# 删除包含缺失值的行
df.dropna(inplace=True)
3、处理重复值:
# 删除重复行
df.drop_duplicates(inplace=True)
4、删除不必要的列:
# 删除名为'column_to_drop'的列
df.drop('column_to_drop', axis=1, inplace=True)
5、数据转换是数据预处理中另一个重要的步骤,它涉及到将数据转换为适合分析的形式。Pandas提供了多种数据转换的方法。
# 将'column_name'列的数据类型转换为整数
df['column_name'] = df['column_name'].astype('int')
6、文本数据清洗:
# 将'text_column'列中的文本转换为小写并去除空格
df['text_column'] = df['text_column'].str.lower().str.strip()
7、数据标准化和归一化
在机器学习和数据分析中,经常需要对数据进行标准化或归一化,以消除不同特征之间的量纲差异和尺度差异。Pandas本身并不直接提供数据标准化和归一化的功能,但你可以结合NumPy等库来实现这些操作。
import numpy as np
# 数据标准化(Z-score标准化)
df_standardized = (df - df.mean()) / df.std()
# 数据归一化(Min-Max归一化)
df_normalized = (df - df.
六、matplotlib、seaborn与pyecharts复习指南
1、我将带你入门三种常用的Python数据可视化库:matplotlib、seaborn和pyecharts,并展示它们的基本用法。
2、matplotlib是Python中最基础的数据可视化库之一,它提供了丰富的绘图接口和高度定制化的选项。下面是一个简单的matplotlib折线图示例:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制折线图
plt.plot(x, y)
# 设置图表标题和坐标轴标签
plt.title('Sin Curve')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()
3、seaborn是基于matplotlib的更高层次的数据可视化库,它提供了更简洁的接口和更美观的默认样式。seaborn特别擅长绘制统计图形,如直方图、箱线图、热力图等。下面是一个使用seaborn绘制直方图的示例:
import seaborn as sns
import pandas as pd
# 创建示例数据
data = {'value': np.random.randn(1000)}
df = pd.DataFrame(data)
# 绘制直方图
sns.histplot(df['value'], kde=True)
# 设置图表标题
plt.title('Histogram with KDE')
# 显示图表
plt.show()
4、pyecharts是一个基于ECharts的Python数据可视化库,它支持生成丰富的交互式图表,如柱状图、折线图、饼图、地图等。pyecharts的图表不仅美观,而且支持在网页中嵌入,非常适合用于制作数据报告或在线仪表盘。下面是一个使用pyecharts绘制柱状图的示例:
from pyecharts.charts import Bar
from pyecharts import options as opts
# 创建数据
categories = ["Category A", "Category B", "Category C", "Category D", "Category E"]
values = [10, 20, 30, 40, 50]
# 初始化柱状图对象
bar = Bar()
# 添加X轴和Y轴的数据
bar.add_xaxis(categories)
bar.add_yaxis("Series", values)
# 设置全局配置项
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))
# 渲染图表到HTML文件
bar.render("bar_chart.html")
5、matplotlib、seaborn和pyecharts都是强大的Python数据可视化库,它们各有特点,适用于不同的场景。
七、scikit-learn构建机器学习模型
1. 安装scikit-learn
在开始之前,确保你已经安装了scikit-learn库。你可以使用pip或conda来安装:
pip install -U scikit-learn
# 或者
conda install scikit-learn
2. 导入必要的库和模块
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
3. 加载数据
from sklearn.datasets import load_boston
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
4. 选择模型并训练
# 实例化线性回归模型
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)
5. 预测和评估
# 使用模型进行预测
y_pred = model.predict(X_test)
# 计算均方误差(MSE)作为评估指标
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
6. 模型保存和加载
# 保存模型到文件
from sklearn.externals import joblib
joblib.dump(model, 'model.pkl')
# 从文件加载模型
loaded_model = joblib.load('model.pkl')
八、复习总结:
python的复习到这里了,共七大点可跳点观看复习,祝各位都有好成绩哟!