NumPy主要用于数值计算和科学计算。Pandas主要用于数据处理和数据分析。它们在数据处理和分析方面有不同的重点和功能。本文主要 NumPy 和 Pandas 的区别,以及它们的常用操作和示例代码。

1、NumPy 和 Pandas 区别

1)作用区别

NumPy主要用于数值计算和科学计算。它提供了多维数组对象(ndarray),用于高效存储和操作大量数据,并提供了各种数学和线性代数操作。NumPy更适合处理数值数据,例如在科学研究、工程和数学建模中使用。

Pandas主要用于数据处理和数据分析。它提供了两个主要数据结构,DataFrame和Series,用于处理和操作表格形式的数据。Pandas更适合处理结构化数据,例如CSV文件、数据库查询结果和Excel表格。

2)数据结构区别

NumPy主要数据结构是ndarray,它是一个多维数组,通常包含相同数据类型的元素。这使得NumPy非常高效,但要求数据类型一致。

Pandas主要数据结构是DataFrame,它是一个二维表格数据结构,可以包含不同数据类型的列。此外,Pandas还提供了Series,它是一维标签数组,类似于NumPy的一维数组,但具有数据标签。

3)数据操作区别

NumPy提供了丰富的数学和数组操作,包括加法、减法、乘法、除法、平均值、标准差、向量化操作等。它通常用于执行数值计算。

Pandas提供了各种数据操作,包括数据索引、切片、筛选、排序、分组、合并、透视表等。它用于更高级的数据处理和分析任务。

4)数据索引区别

NumPy数组使用整数索引或布尔索引,没有内置的列标签或行标签。

Pandas的DataFrame和Series允许使用标签索引,这使得数据的选择和操作更加直观和灵活。

2、NumPy 常用操作

NumPy是一个用于数值计算的强大Python库,提供了许多常用的操作来处理多维数组(ndarray),如下,

import numpy as np

# 创建NumPy数组
arr1 = np.array([[1, 2, 3]])
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
arr3 = np.array([1, 2, 3, 4, 5, 6])

# 数组属性
shape = arr2.shape
dim = arr2.ndim
dtype = arr2.dtype
print(f"shape = {shape},dim = {dim},dtype = {dtype}")

# 数学运算
result_add = arr1 + arr1
result_multiply = arr1 * 2
sqrt_arr = np.sqrt(arr1)
sum_arr = np.sum(arr1)
mean_arr = np.mean(arr1)
max_value = np.max(arr1)
min_value = np.min(arr1)
sorted_arr = np.sort(arr1)

print("\n")
print(f"result_add: {result_add}")
print(f"result_multiply: {result_multiply}")
print(f"sqrt_arr: {sqrt_arr}")
print(f"sum_arr: {sum_arr}")
print(f"mean_arr: {mean_arr}")
print(f"max_value: {max_value}")
print(f"min_value: {min_value}")
print(f"sorted_arr: {sorted_arr}")
print("\n")
# 数组索引和切片
element = arr2[0, 1]
subset = arr1[1:4]

print(f"element: {element}")
print(f"subset: {subset}")
print("\n")

# 数组变形和重塑
reshaped_arr = arr3.reshape((2, 3))
flattened_arr = arr2.flatten()

print("reshaped_arr:")
print(reshaped_arr)
print("flattened_arr:")
print(flattened_arr)
print("\n")

# 数组合并和分割
concatenated_arr = np.concatenate((arr1, arr2), axis=0)
split_arr = np.split(arr3, 2)

print("concatenated_arr:")
print(concatenated_arr)
print("split_arr:")
print(split_arr)

相关文档:

Python numpy 生成随机数的方法及示例

Python numpy 合并数组(stack、vstack和hstack)

Python numpy 数组修改赋值的方法及示例

Python Pandas numpy NaN和Inf简介及常用操作

3、Pandas 常用操作

Pandas是一个强大的Python库,用于数据处理和分析。使用Pandas 常用操作如下,

import pandas as pd

# 创建DataFrame
data = {'Name': ['A', 'B', 'C'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 创建Series
series = pd.Series([1, 2, 3, 4, 5])

# 读取CSV文件
#df_csv = pd.read_csv('data.csv')

# 写入CSV文件
df.to_csv('output.csv', index=False)

# 查看前几行数据
print("Head of DataFrame:")
print(df.head())

# 查看数据摘要统计信息
print("\nSummary Statistics:")
print(df.describe())

# 查看数据类型和缺失值
print("\nData Information:")
print(df.info())

# 选择列
col = df['Age']
print("\nSelected Column:")
print(col)

# 选择多列
subset = df[['Name', 'Age']]
print("\nSelected Multiple Columns:")
print(subset)

# 使用条件选择数据
filtered_data = df[df['Age'] > 30]
print("\nFiltered Data:")
print(filtered_data)

# 按列排序
sorted_df = df.sort_values(by='Age')
print("\nSorted DataFrame:")
print(sorted_df)

# 按多列排序
sorted_df = df.sort_values(by=['Name', 'Age'], ascending=[True, False])
print("\nSorted DataFrame (Multi-Sort):")
print(sorted_df)

# 按列分组
grouped = df.groupby('Name')

# 应用聚合函数
agg_result = grouped['Age'].agg(['mean', 'sum', 'count'])
print("\nAggregation Result:")
print(agg_result)

# 合并两个DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
merged_df = pd.concat([df1, df2], axis=0)
print("\nMerged DataFrame:")
print(merged_df)

# 数据透视表
pivot_table = df.pivot_table(values='Age', index='Name', aggfunc='mean')
print("\nPivot Table:")
print(pivot_table)

# 数据清洗
df.drop_duplicates(inplace=True)
df.fillna(0, inplace=True)
df.dropna(inplace=True)

# 添加列
df['New_Column'] = [1, 2, 3]

# 修改列名
df.rename(columns={'Age': 'New_Age'}, inplace=True)

# 列计算
df['Sum_Columns'] = df['New_Age'] + df['New_Column']
print("\nDataFrame After Modification:")
print(df)

相关文档:

Python pandas DataFrame 行列使用常用操作

Python pandas DataFrame 行列的常用操作及运算

Python pandas merge(join) 通过单列或多列合并连接两个dataframe

Python pandas dataframe iloc 和 loc 的用法及区别

Python pandas 将dataframe两列合成一列的方法

Python 将字典(dict)转换为dataframe的几种方法

Python dataframe按某一列中的值计算其它列的最大值和最小值

Python Pandas dataframe 多个条件过滤筛选数据的方法

Python pandas dataframe转换成NumPy中array数组的方法及示例代码

Python pandas 遍历dataframe中的行数据的方法及示例代码

Python pandas 读取和保存dataframe到Excel中多个sheet的方法及示例代码

Python dataframe 单元格为空(null)修改指定单元格的值的方法

Python dataframe 全连接(full join)的方法及示例代码

Python dataframe 列表类型的列(Series)折分成多行的方法

Python Pandas 实现两个dataframe连接(INNER (LEFT RIGHT FULL) OUTER) JOIN

Python dataframe 根据列(column)值选择查找行(row)的方法及示例代码

推荐文档