Python机器学习基础(NumPy、Pandas、Matplotlib)
Numpy函数库应用
NumPy 是 Python 中用于科学计算的核心库,它提供了高性能的多维数组对象以及用于处理这些数组的工具。
一、创建数组
1.使用array
函数从 Python 列表或元组创建数组。
import numpy as np
a = np.array([1, 2, 3])
print(a)
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
2.使用特殊的函数创建特定形状的数组,如zeros
、ones
、empty
等。
c = np.zeros((2, 3))
print(c)
d = np.ones((3, 3))
print(d)
e = np.empty((2, 2))
print(e)
二、数组属性
数组有一些属性可以获取其形状、大小、数据类型等信息。
ndim
:数组的维度。shape
:数组的形状,是一个元组,表示每个维度的大小。size
:数组中元素的总数。dtype
:数组中元素的数据类型。
例如:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim)
print(arr.shape)
print(arr.size)
print(arr.dtype)
三、数组索引和切片
1.索引:可以通过整数索引访问数组中的元素。
arr = np.array([1, 2, 3, 4, 5])
print(arr[2])
2.切片:可以使用切片操作访问数组的一部分。
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4])
arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2d[1:, 1:])
四、数组运算
1.算术运算:可以对数组进行加、减、乘、除等算术运算。
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
2.数学函数:NumPy 提供了许多数学函数,如sin
、cos
、exp
、sqrt
等。
arr = np.array([1, 2, 3])
print(np.sin(arr))
print(np.cos(arr))
print(np.exp(arr))
print(np.sqrt(arr))
五、数组形状操作
reshape
:可以改变数组的形状。
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr.reshape(2, 3))
ravel
:将多维数组展平为一维数组。
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ravel())
Pandas函数库应用
Pandas 是一个用于数据处理和分析的强大 Python 库。它提供了高性能、易于使用的数据结构和数据分析工具。
一、创建数据结构
Series
:一维数组,可以包含不同类型的数据,类似于一个带有索引的一维数组。
import pandas as pd
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
DataFrame
:二维表格数据结构,由行和列组成,可以包含不同类型的数据。
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
print(df)
二、读取和写入数据
-
读取数据:
- 从 CSV 文件读取:
pd.read_csv('filename.csv')
- 从 Excel 文件读取:
pd.read_excel('filename.xlsx')
- 从 CSV 文件读取:
-
写入数据:
- 写入 CSV 文件:
df.to_csv('filename.csv', index=False)
- 写入 Excel 文件:
df.to_excel('filename.xlsx', index=False)
- 写入 CSV 文件:
三、数据查看和基本信息
-
查看数据的前几行或后几行:
df.head()
:查看前 5 行。df.tail()
:查看后 5 行。
-
查看数据的基本信息:
df.info()
:显示数据的行数、列数、数据类型等信息。df.describe()
:提供数值列的统计信息,如计数、均值、标准差等。
四、数据选择和索引
-
选择列:
- 使用列名选择:
df['column_name']
或df.column_name
。 - 选择多个列:
df[['column1', 'column2']]
。
- 使用列名选择:
-
选择行:
- 使用整数索引选择:
df.iloc[row_index]
或df.iloc[row_index_list]
。 - 使用标签索引选择:
df.loc[row_label]
或df.loc[row_label_list]
。
- 使用整数索引选择:
-
条件选择:
- 根据条件选择行:
df[df['column_name'] > value]
。
- 根据条件选择行:
五、数据清洗和处理
-
处理缺失值:
df.dropna()
:删除包含缺失值的行或列。df.fillna(value)
:用特定值填充缺失值。
-
数据转换:
- 使用
map
函数进行映射:df['column_name'].map(function)
。 - 使用
apply
函数对行或列进行操作:df.apply(function)
。
- 使用
-
数据排序:
- 按列排序:
df.sort_values('column_name')
。 - 按多个列排序:
df.sort_values(['column1', 'column2'])
。
- 按列排序:
六、数据聚合和分组
-
聚合函数:
df.sum()
:求和。df.mean()
:求均值。df.median()
:求中位数等。
-
分组操作:
df.groupby('column_name').agg(function)
:对特定列进行分组并应用聚合函数。
例如:
grouped = df.groupby('City').mean()
print(grouped)
Matplotlib函数库应用
Matplotlib 是一个用于绘制数据可视化图表的 Python 库。
一、绘制简单图表
1.绘制折线图:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
plt.plot(x, y)
plt.show()
2.绘制柱状图:
x = ['A', 'B', 'C', 'D']
y = [10, 15, 7, 12]
plt.bar(x, y)
plt.show()
3.绘制散点图:
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
plt.scatter(x, y)
plt.show()
二、图表设置
1.添加标题、轴标签和图例:
x = np.array([1, 2, 3, 4, 5])
y1 = np.array([2, 4, 6, 8, 10])
y2 = np.array([1, 3, 5, 7, 9])
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.title('My Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.legend()
plt.show()
2.设置轴范围:
plt.xlim(0, 6)
plt.ylim(0, 12)
3.设置刻度和刻度标签:
xticks = [1, 2, 3, 4, 5]
xlabels = ['One', 'Two', 'Three', 'Four', 'Five']
plt.xticks(xticks, xlabels)