4个常用的Python数据分析库详解!

1. Numpy

NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,也针对数组运算提供了大量的数学函数库。NumPy的核心数据类型是ndarray(n-dimensional array),它描述了相同类型的n维数组。相对于Python自带的List列表,NumPy数组的优势在于其支持向量化操作。

1.1 NumPy数组的创建

可以通过以下方式创建NumPy数组:

import numpy as np

# 从Python列表创建numpy数组

list_data = [1, 2, 3, 4, 5]

arr_data = np.array(list_data)

print(arr_data)

# 创建指定大小的数组

zeros = np.zeros((3, 3))

print(zeros)

ones = np.ones((2, 3))

print(ones)

# 随机数组

rand = np.random.rand(2, 5)

print(rand)

1.2 数组访问和操作

NumPy数组可以通过下标、切片等方式进行访问和操作。

import numpy as np

# 访问数组中的元素

arr = np.array([1, 2, 3, 4, 5])

print(arr[0]) # 1

print(arr[-1]) # 5

# 对数组进行切片

print(arr[1:3]) # [2, 3, 4]

# 修改数组中的元素

arr[0] = 9

print(arr)

# 数组运算

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

print(arr1 + arr2) # [5, 7, 9]

arr3 = np.array([[1, 2, 3], [4, 5, 6]])

print(np.sum(arr3)) # 21,计算数组中所有元素的和

print(np.sum(arr3, axis=0)) # [5, 7, 9],计算数组每列的和

print(np.sum(arr3, axis=1)) # [6, 15],计算数组每行的和

2. Pandas

Pandas是一个Python软件库,用于数据操作和分析。它提供了快速、灵活和富有表现力的数据结构,旨在使数据清洗、转换、分析和可视化变得简单而直观。

2.1 Pandas数据结构

Pandas包含两种基本的数据结构:Series和DataFrame。

import pandas as pd

# 创建Series

color = pd.Series(['blue', 'red', 'green', 'yellow'])

print(color)

name = pd.Series(['Alice', 'Bob', 'Charlie', 'David'])

age = pd.Series([25, 32, 18, 47])

gender = pd.Series(['F', 'M', 'M', 'M'])

# 创建DataFrame

df = pd.DataFrame({'name': name, 'age': age, 'gender': gender})

print(df)

2.2 数据读取和筛选

可以使用Pandas读取各种格式的数据,如CSV、Excel、SQL、JSON等。筛选数据可以使用loc和iloc两种方式。

import pandas as pd

# 读取CSV文件

df = pd.read_csv('data.csv')

# 按条件筛选数据

df.loc[df['age'] > 30]

# 使用iloc根据列索引和行索引筛选数据

df.iloc[2:4, 0:2]

3. Matplotlib

Matplotlib是一个Python的2D绘图库。Matplotlib可用于绘制各种静态、动态、交互式和嵌入式图表。

3.1 基本的图表绘制

Matplotlib可以绘制条形图、散点图、折线图、曲线图、饼图等多种图表。

import numpy as np

import matplotlib.pyplot as plt

# 绘制折线图

x = np.linspace(0, 2*np.pi)

y = np.sin(x)

plt.plot(x, y)

plt.show()

# 绘制散点图

x = np.array([1, 2, 3, 4, 5])

y = np.array([5, 7, 3, 8, 4])

plt.scatter(x, y)

plt.show()

3.2 图表定制化

Matplotlib提供了丰富的接口,可以对图表进行各种定制化。例如,可以设置标题、坐标轴标签、网格线、图例等。

import numpy as np

import matplotlib.pyplot as plt

# 绘制折线图

x = np.linspace(0, 2*np.pi)

y1 = np.sin(x)

y2 = np.cos(x)

plt.plot(x, y1, label='sin')

plt.plot(x, y2, label='cos')

plt.xlabel('x')

plt.ylabel('y')

plt.title('Sine and Cosine Curves')

plt.legend()

plt.grid()

plt.show()

4. Seaborn

Seaborn是一个基于Matplotlib的Python可视化库,提供了一种高度可视化的界面,用于制作统计图表。Seaborn帮助我们探索和理解数据,可用于数据探索、趋势分析、数据清洗等。

4.1 绘制基础图表

Seaborn可以绘制多种基础图表,如条形图、散点图、折线图、核密度估计图等。

import seaborn as sns

import pandas as pd

# 绘制散点图

df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [5, 7, 3, 8, 4]})

sns.scatterplot(x='x', y='y', data=df)

# 绘制箱线图

tips = sns.load_dataset("tips")

sns.boxplot(x="day", y="total_bill", data=tips)

4.2 绘制高级统计图表

Seaborn还提供了多种高级统计图表,如热力图、聚类图、成对关系图等。

import seaborn as sns

import pandas as pd

# 绘制热力图

df = pd.DataFrame({'x': [1, 1, 2, 2, 3, 3, 4, 4],

'y': [1, 2, 1, 2, 1, 2, 1, 2],

'value': [1, 2, 3, 4, 5, 6, 7, 8]})

df_pivot = df.pivot("y", "x", "value")

sns.heatmap(df_pivot)

# 绘制聚类图

iris = sns.load_dataset("iris")

sns.clustermap(iris.drop("species", axis=1), cmap="mako",

dendrogram_ratio=(.1, .2), cbar_pos=(0, .2, .03, .4))

总的来说,这四个数据分析库都是非常实用的,其提供的各种数据处理、可视化接口非常方便,可以帮助我们更快更准确地对数据进行分析和处理。

后端开发标签