引言
NumPy是Python中用于科学计算的基础库,它提供了强大的多维数组对象和一系列用于操作这些数组的函数。数据可视化是数据分析中不可或缺的一部分,它可以帮助我们更好地理解数据。本文将通过50个实用例子,帮助你掌握NumPy,并学会如何使用它来实现数据可视化。
1. NumPy基础
在开始之前,我们需要确保NumPy库已经安装。如果没有安装,可以使用以下命令进行安装:
pip install numpy
以下是NumPy的一些基本操作:
import numpy as np
# 创建一个一维数组
array_1d = np.array([1, 2, 3, 4, 5])
# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 数组形状
print(array_1d.shape)
print(array_2d.shape)
# 数组元素类型
print(array_1d.dtype)
print(array_2d.dtype)
2. 数据可视化基础
数据可视化通常使用matplotlib库来实现。以下是安装matplotlib的命令:
pip install matplotlib
以下是一个简单的数据可视化例子:
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制折线图
plt.plot(x, y)
plt.show()
3. 实用例子
以下是50个实用例子,帮助你掌握NumPy和数据可视化:
例子1:创建数组
# 创建一个包含10个随机数的数组
random_array = np.random.rand(10)
print(random_array)
例子2:数组操作
# 数组切片
sliced_array = array_1d[1:4]
print(sliced_array)
# 数组索引
indexed_array = array_2d[0, 2]
print(indexed_array)
例子3:数组形状变换
# 变换数组形状
reshaped_array = array_2d.reshape(3, 2)
print(reshaped_array)
例子4:数组运算
# 数组元素相加
sum_array = array_1d + array_1d
print(sum_array)
# 数组元素相乘
product_array = array_1d * array_1d
print(product_array)
例子5:数据可视化
# 绘制散点图
plt.scatter(x, y)
plt.show()
例子6:直方图
# 绘制直方图
plt.hist(random_array, bins=5)
plt.show()
例子7:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()
例子8:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values)
plt.show()
例子9:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1')
plt.plot(x, y + 2, label='Line 2')
plt.legend()
plt.show()
例子10:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o')
plt.show()
例子11:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black')
plt.show()
例子12:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.show()
例子13:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'])
plt.show()
例子14:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue')
plt.plot(x, y + 2, label='Line 2', color='red')
plt.legend()
plt.show()
例子15:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100)
plt.show()
例子16:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.5)
plt.show()
例子17:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85)
plt.show()
例子18:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7)
plt.show()
例子19:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--')
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':')
plt.legend()
plt.show()
例子20:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5)
plt.show()
例子21:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7)
plt.show()
例子22:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0])
plt.show()
例子23:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7, yerr=[1, 2, 3])
plt.show()
例子24:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', linewidth=2)
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':', linewidth=2)
plt.legend()
plt.show()
例子25:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5, edgecolors='black')
plt.show()
例子26:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7, color='green')
plt.show()
例子27:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0], colors=['red', 'green', 'blue', 'yellow'])
plt.show()
例子28:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7, yerr=[1, 2, 3], capsize=5)
plt.show()
例子29:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', linewidth=2, marker='o', markersize=5)
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':', linewidth=2, marker='o', markersize=5)
plt.legend()
plt.show()
例子30:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5, edgecolors='black', label='Group 1')
plt.scatter(x + 1, y + 1, c='blue', marker='x', s=100, alpha=0.5, edgecolors='black', label='Group 2')
plt.legend()
plt.show()
例子31:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7, color='green', label='Group 1')
plt.hist(random_array + 1, bins=5, edgecolor='black', alpha=0.7, color='blue', label='Group 2')
plt.legend()
plt.show()
例子32:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0], colors=['red', 'green', 'blue', 'yellow'], label='Group 1')
plt.legend()
plt.show()
例子33:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7, yerr=[1, 2, 3], capsize=5, label='Group 1')
plt.legend()
plt.show()
例子34:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', linewidth=2, marker='o', markersize=5, label='Group 1')
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':', linewidth=2, marker='o', markersize=5, label='Group 2')
plt.legend()
plt.show()
例子35:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5, edgecolors='black', label='Group 1')
plt.scatter(x + 1, y + 1, c='blue', marker='x', s=100, alpha=0.5, edgecolors='black', label='Group 2')
plt.legend()
plt.show()
例子36:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7, color='green', label='Group 1')
plt.hist(random_array + 1, bins=5, edgecolor='black', alpha=0.7, color='blue', label='Group 2')
plt.legend()
plt.show()
例子37:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0], colors=['red', 'green', 'blue', 'yellow'], label='Group 1')
plt.legend()
plt.show()
例子38:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7, yerr=[1, 2, 3], capsize=5, label='Group 1')
plt.legend()
plt.show()
例子39:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', linewidth=2, marker='o', markersize=5, label='Group 1')
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':', linewidth=2, marker='o', markersize=5, label='Group 2')
plt.legend()
plt.show()
例子40:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5, edgecolors='black', label='Group 1')
plt.scatter(x + 1, y + 1, c='blue', marker='x', s=100, alpha=0.5, edgecolors='black', label='Group 2')
plt.legend()
plt.show()
例子41:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7, color='green', label='Group 1')
plt.hist(random_array + 1, bins=5, edgecolor='black', alpha=0.7, color='blue', label='Group 2')
plt.legend()
plt.show()
例子42:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0], colors=['red', 'green', 'blue', 'yellow'], label='Group 1')
plt.legend()
plt.show()
例子43:条形图
# 绘制条形图
categories = ['Category 1', 'Category 2', 'Category 3']
values = [10, 20, 30]
plt.bar(categories, values, color=['red', 'green', 'blue'], alpha=0.7, yerr=[1, 2, 3], capsize=5, label='Group 1')
plt.legend()
plt.show()
例子44:折线图
# 绘制折线图
plt.plot(x, y, label='Line 1', color='blue', linestyle='--', linewidth=2, marker='o', markersize=5, label='Group 1')
plt.plot(x, y + 2, label='Line 2', color='red', linestyle=':', linewidth=2, marker='o', markersize=5, label='Group 2')
plt.legend()
plt.show()
例子45:散点图
# 绘制散点图
plt.scatter(x, y, c='red', marker='o', s=100, alpha=0.5, edgecolors='black', label='Group 1')
plt.scatter(x + 1, y + 1, c='blue', marker='x', s=100, alpha=0.5, edgecolors='black', label='Group 2')
plt.legend()
plt.show()
例子46:直方图
# 绘制直方图
plt.hist(random_array, bins=5, edgecolor='black', alpha=0.7, color='green', label='Group 1')
plt.hist(random_array + 1, bins=5, edgecolor='black', alpha=0.7, color='blue', label='Group 2')
plt.legend()
plt.show()
例子47:饼图
# 绘制饼图
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, pctdistance=0.85, explode=[0.1, 0, 0, 0], colors=['red', 'green', 'blue', 'yellow'], label='Group 1')
plt.legend()
plt.show()
例子48:条形图
”`python
绘制条形图
categories = [‘Category 1’, ‘Category 2’, ‘Category 3’] values = [10, 20, 30]