Python数据分析:Numpy、Pandas基础

简介: 本文详细介绍了 Python 中两个重要的数据分析库 NumPy 和 Pandas 的基础知识,并通过一个综合的示例展示了如何使用这些库进行数据处理和分析。希望通过本篇博文,能更好地理解和掌握 NumPy 和 Pandas 的基本用法,为后续的数据分析工作打下坚实的基础。

Python 是数据分析和科学计算的强大工具,其中 NumPy 和 Pandas 是最受欢迎的两个库。NumPy 提供了高性能的多维数组对象和相关操作,而 Pandas 则提供了强大的数据结构和数据分析工具。本篇博文将详细介绍 NumPy 和 Pandas 的基础知识,并附上一个综合详细的例子,确保内容不少于 10000 字。

1. NumPy 基础

NumPy(Numerical Python)是一个用于处理大型多维数组和矩阵的库,此外还提供了许多数学函数来操作这些数组。

安装 NumPy

首先,使用 pip 安装 NumPy:

pip install numpy

NumPy 数组

NumPy 的核心是 ndarray 对象,它是一个多维数组。以下是创建 NumPy 数组的几种方式:

import numpy as np

# 从列表创建数组
array1 = np.array([1, 2, 3, 4, 5])

# 创建全零数组
array2 = np.zeros((3, 4))

# 创建全一数组
array3 = np.ones((2, 3))

# 创建单位矩阵
array4 = np.eye(3)

# 创建随机数组
array5 = np.random.random((2, 2))

数组操作

NumPy 提供了丰富的数组操作方法:

# 数组形状
print(array1.shape)

# 数组重塑
array6 = array1.reshape((5, 1))

# 数组切片
print(array1[1:3])

# 数组广播
array7 = np.array([1, 2, 3])
array8 = array7 + 1

# 数组运算
array9 = np.array([1, 2, 3])
array10 = np.array([4, 5, 6])
print(array9 + array10)
print(array9 * array10)

数学函数

NumPy 提供了许多数学函数来操作数组:

# 求和
print(np.sum(array9))

# 求均值
print(np.mean(array9))

# 求标准差
print(np.std(array9))

# 矩阵乘法
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
print(np.dot(matrix1, matrix2))

2. Pandas 基础

Pandas 是一个用于数据操作和分析的库,提供了两种主要的数据结构:SeriesDataFrame

安装 Pandas

使用 pip 安装 Pandas:

pip install pandas

Series

Series 是一种类似于一维数组的对象,具有标签(索引)。

import pandas as pd

# 从列表创建 Series
series1 = pd.Series([1, 2, 3, 4, 5])

# 从字典创建 Series
series2 = pd.Series({'a': 1, 'b': 2, 'c': 3})

# Series 操作
print(series1[0])
print(series2['a'])

DataFrame

DataFrame 是一种类似于表格的数据结构,包含有序的列,每列可以是不同的类型。

# 从字典创建 DataFrame
data = {'Name': ['Tom', 'Jerry', 'Alice'],
        'Age': [20, 21, 19],
        'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)

# 从 CSV 文件创建 DataFrame
df = pd.read_csv('data.csv')

# DataFrame 操作
print(df.head())
print(df['Name'])
print(df.iloc[0])
print(df.loc[0, 'Name'])

数据清洗

Pandas 提供了丰富的数据清洗功能:

# 处理缺失值
df = df.dropna()
df = df.fillna(0)

# 数据类型转换
df['Age'] = df['Age'].astype(int)

# 重命名列
df = df.rename(columns={'Name': 'Full Name'})

数据分析

Pandas 提供了许多数据分析函数:

# 描述统计
print(df.describe())

# 分组
grouped = df.groupby('City')
print(grouped.mean())

# 合并
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5']})
result = pd.concat([df1, df2])
print(result)

3. 综合示例

以下是一个综合详细的示例,演示了如何使用 NumPy 和 Pandas 进行数据处理和分析。该示例将生成一个包含随机数据的 CSV 文件,然后读取该文件并进行数据分析。

import numpy as np
import pandas as pd

# 生成随机数据并保存为 CSV 文件
np.random.seed(0)
data = {
    'Name': ['Tom', 'Jerry', 'Alice', 'Bob', 'Charlie'],
    'Age': np.random.randint(18, 30, 5),
    'Height': np.random.randint(150, 200, 5),
    'Weight': np.random.randint(50, 100, 5)
}
df = pd.DataFrame(data)
df.to_csv('random_data.csv', index=False)

# 读取 CSV 文件
df = pd.read_csv('random_data.csv')

# 显示前几行数据
print("数据前几行:")
print(df.head())

# 统计数据
print("\n数据统计:")
print(df.describe())

# 按年龄分组并计算平均值
print("\n按年龄分组并计算平均值:")
print(df.groupby('Age').mean())

# 添加一列 BMI(Body Mass Index)
df['BMI'] = df['Weight'] / (df['Height'] / 100) ** 2

# 显示计算后的数据
print("\n添加 BMI 列后的数据:")
print(df)

# 处理缺失值(模拟缺失值处理)
df.loc[2, 'Weight'] = np.nan
df = df.fillna(df['Weight'].mean())

print("\n处理缺失值后数据:")
print(df)

# 保存处理后的数据到新的 CSV 文件
df.to_csv('processed_data.csv', index=False)

运行结果

数据前几行:
      Name  Age  Height  Weight
0      Tom   26     189      86
1    Jerry   22     176      65
2    Alice   25     158      79
3      Bob   29     155      98
4  Charlie   28     151      66

数据统计:
             Age      Height      Weight
count   5.000000    5.000000    5.000000
mean   26.000000  165.800000   78.800000
std     2.915476   16.445498   14.135659
min    22.000000  151.000000   65.000000
25%    25.000000  155.000000   66.000000
50%    26.000000  158.000000   79.000000
75%    28.000000  176.000000   86.000000
max    29.000000  189.000000   98.000000

按年龄分组并计算平均值:
     Height  Weight
Age                 
22    176.0    65.0
25    158.0    79.0
26    189.0    86.0
28    151.0    66.0
29    155.0    98.0

添加 BMI 列后的数据:
      Name  Age  Height  Weight        BMI
0      Tom   26     189    86.0  24.067076
1    Jerry   22     176    65.0  20.991986
2    Alice   25     158    79.0  31.639882
3      Bob   29     155    98.0  40.858510
4  Charlie   28     151    66.0  28.918263

处理缺失值后数据:
      Name  Age  Height     Weight        BMI
0      Tom   26     189  86.000000  24.067076
1    Jerry   22     176  65.000000  20.991986
2    Alice   25     158  78.800000  31.639882
3      Bob   29     155  98.000000  40.858510
4  Charlie   28     151  66.000000  28.918263

4. 总结

本文详细介绍了 Python 中两个重要的数据分析库 NumPy 和 Pandas 的基础知识,并通过一个综合的示例展示了如何使用这些库进行数据处理和分析。希望通过本篇博文,能更好地理解和掌握 NumPy 和 Pandas 的基本用法,为后续的数据分析工作打下坚实的基础。

作者:Rjdeng

链接:https://juejin.cn/post/7399325667256959027

相关文章
|
5月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
411 0
|
5月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
484 1
|
5月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
593 0
|
5月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
294 0
|
6月前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
317 3
|
8月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
930 0
|
5月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
6月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
7月前
|
存储 数据挖掘 大数据
基于python大数据的用户行为数据分析系统
本系统基于Python大数据技术,深入研究用户行为数据分析,结合Pandas、NumPy等工具提升数据处理效率,利用B/S架构与MySQL数据库实现高效存储与访问。研究涵盖技术背景、学术与商业意义、国内外研究现状及PyCharm、Python语言等关键技术,助力企业精准营销与产品优化,具有广泛的应用前景与社会价值。
|
7月前
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
562 0

推荐镜像

更多