1. NumPy 与 Pandas 用法总结
1.1. NumPy 用法
1.1.1. 安装 NumPy
pip install numpy
1.1.2. 导入 NumPy
import numpy as np
1.1.3. 创建数组
- 从列表或元组创建数组
arr = np.array([1, 2, 3])
matrix = np.array([[1, 2], [3, 4]])
- 使用内置函数创建数组
zeros = np.zeros((2, 3)) # 全零数组
ones = np.ones((3, 4)) # 全一数组
arange = np.arange(0, 10, 2) # 创建一个范围数组
linspace = np.linspace(0, 1, 5) # 等间距数组
1.1.4. 数组属性
shape = arr.shape # 数组形状
dtype = arr.dtype # 数据类型
size = arr.size # 数组元素总数
1.1.5. 数组切片与索引
slice_arr = arr[1:3] # 切片
element = arr[1] # 单个元素
row_slice = matrix[0, :] # 第一行
col_slice = matrix[:, 1] # 第二列
sub_matrix = matrix[0:2, 0:2] # 子矩阵
1.1.6. 数组操作
- 统计操作
sum_arr = np.sum(arr) # 求和
mean_arr = np.mean(arr) # 均值
max_arr = np.max(arr) # 最大值
min_arr = np.min(arr) # 最小值
std_arr = np.std(arr) # 标准差
- 数学操作
add_arr = arr + 10 # 加法
mul_arr = arr * 2 # 乘法
exp_arr = np.exp(arr) # 指数
- 矩阵运算
dot_product = np.dot(matrix, matrix) # 矩阵乘法
transpose = matrix.T # 转置
inverse = np.linalg.inv(matrix) # 矩阵求逆(需方阵)
1.1.7. 广播
NumPy 支持广播,使得不同形状的数组可以进行运算。
result = arr + np.array([1, 2, 3]) # 广播机制
1.2. Pandas 用法
1.2.1. 安装 Pandas
pip install pandas
1.2.2. 导入 Pandas
import pandas as pd
1.2.3. 创建 DataFrame 和 Series
- 从字典创建 DataFrame
data = {'A': [1, 2], 'B': [3, 4]}
df = pd.DataFrame(data)
- 从列表创建 Series
s = pd.Series([1, 2, 3, 4])
1.2.4. 常用属性
columns = df.columns # 列名
index = df.index # 索引
shape = df.shape # 形状
dtypes = df.dtypes # 数据类型
1.2.5. 访问数据
- 行选择
row = df.iloc[0] # 按位置选择第一行
row_label = df.loc[0] # 按标签选择第一行
- 列选择
column_A = df['A'] # 选择列 A
column_B = df[['B']] # 选择列 B
- 切片选择
subset = df.iloc[0:2, 0:2] # 选择子集
1.2.6. 数据操作
- 增加/删除列
df['C'] = [5, 6] # 添加新列 C
df.drop('C', axis=1, inplace=True) # 删除列 C
- 数据过滤
filtered_df = df[df['A'] > 1] # 过滤条件
1.2.7. 统计分析
mean_A = df['A'].mean() # 计算均值
sum_A = df['A'].sum() # 计算求和
describe = df.describe() # 描述性统计
1.2.8. 数据处理
- 排序
sorted_df = df.sort_values(by='A') # 根据列 A 排序
- 缺失值处理
df.fillna(0, inplace=True) # 填充缺失值
df.dropna(inplace=True) # 删除包含缺失值的行
1.2.9. 数据导入与导出
df.to_csv('file.csv', index=False) # 导出为 CSV 文件
df = pd.read_csv('file.csv') # 从 CSV 文件导入
1.2.10. 读热码转换
pd.get_dummies(data, columns=None, drop_first=False, dummy_na=False, ...)
主要参数:
- data: 要编码的数据,可以是 DataFrame 或 Series。
- columns: 指定要进行编码的列名。如果不提供,所有类型的对象列都会被处理。
- drop_first: 布尔值,默认为 False。如果为 True,则删除第一个类别的列,以避免虚拟变量陷阱(dummy variable trap),即多重共线性问题。
- dummy_na: 布尔值,默认为 False。如果为 True,那么将生成一个额外的列,用于指示缺失值(NaN)的存在。这一列会在原始数据中出现 NaN(缺失值)的地方标记为 1,其余为 0。
1.3. 使用 NumPy 数组作为 DataFrame 的数据
您还可以使用 NumPy 数组作为 DataFrame 的数据并指定索引和列名:
python复制代码# 创建 NumPy 数组
data = np.array([[1, 2], [3, 4]])
# 将 NumPy 数组转换为 DataFrame,并指定索引和列名
df = pd.DataFrame(data, index=['row1', 'row2'], columns=['A', 'B'])
print(df)
1.4. tensorflow
- 转换为tensors,不能改变
tf.constant([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
- 转换为variable