暂无AI摘要
问题
生成数据集,利用等宽的方法对数据进行离散化。
实验环境
windows11、Python3.9、pycharm
代码实现
此代码包含的内容:
- 使用numpy生成随机数据集
- 利用pandas进行离散化
- 使用matplotlib、seaborn对实验结果可视化
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
def main():
# 生成随机数据集
np.random.seed(0)
data = np.random.randn(1000)
# 将数据转换为 Pandas Series 对象
data_series = pd.Series(data)
# 使用等宽方法离散化数据
num_bins = 5 # 定义离散化的组数
bin_labels = [f'Bin{i + 1}' for i in range(num_bins)] # 为每个组定义标签
discretized_data = pd.cut(data_series, bins=num_bins, labels=bin_labels)
# 绘制子图
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(15, 6), sharey=True)
# 绘制直方图
sns.histplot(data_series, ax=ax1, kde=True, color='skyblue', edgecolor='black', alpha=0.5)
ax1.set_xlabel('Original Data')
ax1.set_ylabel('Frequency')
ax1.set_title('Histogram of Original Data')
# 绘制离散化数据的柱状图
sns.countplot(x=discretized_data, ax=ax2, palette='viridis')
ax2.set_xlabel('Discretized Data')
ax2.set_ylabel('Count')
ax2.set_title('Bar Plot of Discretized Data')
plt.tight_layout()
plt.show()
if __name__ == '__main__':
main()
运行结果
原创文章,作者:白函,如若转载,请注明出处:https://wtboxes.com/article/38