首页 > 其他分享 >使用NumPy、Pandas和Matplotlib进行数据处理和可视化

使用NumPy、Pandas和Matplotlib进行数据处理和可视化

时间:2024-11-12 13:47:43浏览次数:3  
标签:plt df Matplotlib Python 深色 版本 print NumPy Pandas

前言

在数据科学和数据分析领域,NumPy、Pandas和Matplotlib是最常用的数据处理和可视化库。NumPy提供了高效的数组操作功能,Pandas则在NumPy的基础上增加了丰富的数据处理工具,而Matplotlib则是最流行的Python绘图库之一。本文将详细介绍如何使用这三个库进行数据处理和可视化。

环境准备

在开始之前,请确保已经安装了以下库:

  • NumPy
  • Pandas
  • Matplotlib

可以通过pip命令安装这些库:


Bash

深色版本

pip install numpy pandas matplotlib

NumPy基础

NumPy是Python中用于科学计算的基础库,特别擅长处理大型多维数组和矩阵。

创建数组


Python

深色版本

import numpy as np

# 创建一维数组
a = np.array([1, 2, 3, 4, 5])
print(a)

# 创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

数组属性


Python

深色版本

# 数组的形状
print(b.shape)

# 数组的维度
print(b.ndim)

# 数组的元素类型
print(b.dtype)

数组操作


Python

深色版本

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

# 数组重塑
c = b.reshape(3, 2)
print(c)

# 数组拼接
d = np.concatenate((a, a))
print(d)

数学运算


Python

深色版本

# 元素级别的加法
e = a + 1
print(e)

# 矩阵乘法
f = np.dot(b, c)
print(f)

Pandas基础

Pandas是基于NumPy构建的,提供了丰富的数据处理和分析工具,特别是DataFrame对象。

创建DataFrame


Python

深色版本

import pandas as pd

# 从字典创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)

# 从CSV文件读取数据
df = pd.read_csv('data.csv')
print(df)

数据选择与过滤


Python

深色版本

# 选择列
names = df['Name']
print(names)

# 选择行
first_row = df.iloc[0]
print(first_row)

# 过滤数据
filtered_df = df[df['Age'] > 30]
print(filtered_df)

数据处理


Python

深色版本

# 添加新列
df['Gender'] = ['Female', 'Male', 'Male']
print(df)

# 组合和聚合
grouped = df.groupby('Gender').mean()
print(grouped)

# 缺失值处理
df.fillna(0, inplace=True)
print(df)

Matplotlib基础

Matplotlib是Python中最常用的绘图库,支持多种图表类型。

创建简单图表


Python

深色版本

import matplotlib.pyplot as plt

# 创建折线图
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Simple Line Plot')
plt.show()

散点图


Python

深色版本

# 创建散点图
x = np.random.rand(10)
y = np.random.rand(10)
plt.scatter(x, y)
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Scatter Plot')
plt.show()

直方图


Python

深色版本

# 创建直方图
data = np.random.randn(1000)
plt.hist(data, bins=30, alpha=0.7)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()

多子图


Python

深色版本

# 创建多个子图
fig, axs = plt.subplots(2, 2, figsize=(10, 10))

axs[0, 0].plot([1, 2, 3, 4], [1, 4, 9, 16])
axs[0, 0].set_title('Line Plot')

axs[0, 1].scatter(x, y)
axs[0, 1].set_title('Scatter Plot')

axs[1, 0].hist(data, bins=30, alpha=0.7)
axs[1, 0].set_title('Histogram')

axs[1, 1].bar(['A', 'B', 'C', 'D'], [10, 20, 15, 25])
axs[1, 1].set_title('Bar Chart')

plt.tight_layout()
plt.show()

实战案例:股票数据分析

假设我们有一个包含股票价格的CSV文件,我们将使用NumPy、Pandas和Matplotlib对其进行处理和可视化。

读取数据


Python

深色版本

df = pd.read_csv('stock_prices.csv')
print(df.head())

数据预处理


Python

深色版本

# 转换日期列为日期类型
df['Date'] = pd.to_datetime(df['Date'])

# 设置日期列为索引
df.set_index('Date', inplace=True)

# 检查缺失值
print(df.isnull().sum())

# 填充缺失值
df.fillna(method='ffill', inplace=True)

数据分析


Python

深色版本

# 计算每日收益率
df['Return'] = df['Close'].pct_change()
print(df.head())

# 计算滚动平均
df['MA50'] = df['Close'].rolling(window=50).mean()
df['MA200'] = df['Close'].rolling(window=200).mean()
print(df.head())

数据可视化


Python

深色版本

# 绘制收盘价和移动平均线
plt.figure(figsize=(12, 6))
plt.plot(df['Close'], label='Close Price')
plt.plot(df['MA50'], label='50-day MA')
plt.plot(df['MA200'], label='200-day MA')
plt.xlabel('Date')
plt.ylabel('Price')
plt.title('Stock Price and Moving Averages')
plt.legend()
plt.show()

总结

NumPy提供了高效的数组操作功能,Pandas则在NumPy的基础上增加了丰富的数据处理工具,而Matplotlib则是最流行的Python绘图库之一。希望本文对你有所帮助!

标签:plt,df,Matplotlib,Python,深色,版本,print,NumPy,Pandas
From: https://blog.csdn.net/Fanstay985/article/details/143705728

相关文章

  • Python pandas库:强大的数据处理工具
        在Python的数据处理领域,pandas库无疑是一颗璀璨的明星。它为数据分析和处理提供了高效、便捷的方法。一、pandas简介    pandas是一个用于数据处理和分析的Python库,提供了数据结构Series和DataFrame,使得数据的操作和分析变得更加容易。二、主要数据结构......
  • Python数据分析NumPy和pandas(二十六、数据整理--连接、合并和重塑 之三:重塑和透视)
    对表格数据的重新排列操作,称为reshape或pivot。有很多种方法对表格数据进行重塑。一、使用分层索引进行reshape分层索引提供了一种在DataFrame中重新排列数据的方法。主要有两个函数方法:stack:将数据中的列旋转或透视到行。unstack:从行转为列。还是用代码示例来学习......
  • 用numpy将nc批量转的降雨表格按市县整理成逐年逐月降雨
    之前用arcmap的模型工具将nc文件转tif后,提取降雨数据到excel中,距离最终需要的数据还是有一定的差距。需要用到Python进行处理。                         1、降雨需要的格式做高标准农田,水资源平衡分析,用到的历年降雨资料......
  • Pandas进行时间重采样与聚合
    在数据分析中,时间序列数据是一类非常常见的数据类型,通常需要对其进行频率变换或聚合操作,以便更好地分析和展示数据趋势。Python中的pandas库提供了丰富的工具来处理时间序列数据,尤其是resample()和groupby()这两个功能。它们不仅可以对时间序列进行重采样,还能结合聚合......
  • Pandas进行数据清洗
    在现代数据分析和处理的过程中,数据清洗是一项至关重要的工作。数据通常是从多个来源获取的,可能包含错误、缺失值或重复项,直接使用未经处理的数据会导致分析结果失真。因此,数据清洗是确保数据质量的关键步骤。通过合理的数据清洗操作,可以确保后续的分析、建模和预测更为准确......
  • 数据处理与统计分析——01-Numpy的属性&ndarray数组创建
    Numpy的属性Numpy简介NumPy(NumericalPython)是Python数据分析必不可少的第三方库NumPy的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型,使其具备了构造复杂数据类型的能力。本身是由C语言开发,是个很基础的扩展,NumPy被Python其它科学计算包作......
  • Python酷库之旅-第三方库Pandas(192)
    目录一、用法精讲891、pandas.Index.nunique方法891-1、语法891-2、参数891-3、功能891-4、返回值891-5、说明891-6、用法891-6-1、数据准备891-6-2、代码示例891-6-3、结果输出892、pandas.Index.value_counts方法892-1、语法892-2、参数892-3、功能892-4、返......
  • 用pandas 读取excel文件,存到数组中,调整数组的值
    importpandasaspdimportpymysqlfromdatetimeimportdatetime#定义一个自增的全局变量counter=1defincrement():globalcountercounter+=1returncounter#调用函数并打印结果#print(get_current_date())defget_array():#读取Excel......
  • Pandas读写数据库
    python库要求pandas提供读写关系型数据库的函数和方法SQLAlchemy配合相应数据库的Python连接工具pymysqlmysql数据库Python连接工具安装数据库下载地址:https://dev.mysql.com/downloads/安装注意事项:记住设置的root账户密码记住端口号,默认为3306创建数据库打开数......
  • pandas习题 047:筛选在多个机构中的用户
    (编码题)有以下DataFrame,需要筛选一个用户在多个机构的数据,并且这个数据中的每个机构至少有两个用户(最终结果数据可参考参考答案的数据)。importpandasaspdimportiodata='''序号 机构名称 姓名 用户ID 日期1 A 陈1 Z001 2024/2/32 A 陈2 Z002 2024/2/43 A 黄6 Z......