python-数据分析与可视化基础

1、data1.csv中的B、C、D和E列数据分别是日期、权重、A企业的销售额、B企业的销售额。读取C、D、E列数据,并统计E列数据的算术平均数、加权平均值(权值为C列数据)、方差、中位数、最小值、最大值。并绘制E列数据的直方图。

(1)源代码:

python 复制代码
import numpy as np

import matplotlib.pyplot as plt



C, D, E = np.loadtxt("data1.csv", delimiter=',', usecols=(2, 3, 4), unpack=True, skiprows=1)



sum1 = np.sum(E)

print("E企业的销售额总和:", sum1)

mean1 = np.mean(E)

print("E企业的销售额的算术平均数:", mean1)

wavg1 = np.average(E, weights=C)

print("E企业的销售额的加权平均值为:", wavg1)

var1 = np.var(E)

print("E企业的销售额的方差为:", var1)

media1 = np.median(E)

print("E企业的销售额的中位数为:", media1)

min1 = np.min(E)

print("E企业的销售额的最小值:", min1)

max1 = np.max(E)

print("E企业的销售额的最大值:", min1)



plt.hist(E, bins=10, rwidth=0.8)

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.xticks(fontsize=15)

plt.yticks(fontsize=15)

plt.xlabel('E企业的销售额', fontsize=15)

plt.ylabel('出现次数', fontsize=15)

plt.title('E企业的销售额分布直方图', fontsize=18)

plt.show()

(2)运行结果截图 :

2、读取data1.csv文件中的A企业销售额与B企业销售额数据,并计算这些企业数据的协方差矩阵和相关系数矩阵。

(1)源代码:

python 复制代码
import numpy as np



A, B = np.loadtxt('data1.csv', delimiter=',', usecols=(3, 4), unpack=True, skiprows=1)

covAB = np.cov([A, B])

relAB = np.corrcoef([A, B])

print('A,B企业数据的协方差矩阵为:')

print(covAB)

print('A,B企业数据的相关系数矩阵为:')

print(relAB)

(2) 运行结果截图 :

3 、读取 datal.csv文件中A、B、C、D、E,绘制由A列和D列数据关联,以及由A列和E列数据(请将该列值除以120后绘图)关联的两条折线图,并分别赋以不同的颜色和线型,添加图例。

(1)源代码

python 复制代码
import numpy as np

import matplotlib.pyplot as plt

s, a, b = np.loadtxt('data1.csv' , delimiter=',' ,

                   usecols=(0 , 3 , 4), unpack=True , skiprows=1)



plt.plot(s, a,'r*--',alpha=0.5,linewidth=1,label='A企业')

plt.plot(s,b/120,'go--',alpha=0.5,linewidth=1, label='B企业')

plt.rcParams['font.sans-serif']=['SimHei']

plt.legend()

plt.xlabel('时间')

plt.ylabel('销售额')

plt.title('A企业与B企业销售额走势图')

plt.show()

(2)运行结果截图

4、针对data1.csv中A企业的销售额,使用简单移动平均方法估计各月的销售额。移动平均间隔为3,即用1、2、3三周的数据预测第4周的数据。

(1)源代码

python 复制代码
import numpy as np

import matplotlib.pyplot as plt



a= np.loadtxt('data1.csv',delimiter=',',usecols=3, unpack=True , skiprows=1)

winwide =3

weight = np.ones(winwide)/winwide

plt.rcParams['font.sans-serif']=['simHei']

aM = np.convolve(weight,a)

t = np.arange(winwide-1,len(a))

plt.figure(figsize=(15,10))

plt.subplot(1,2,1)

plt.plot(t,a[winwide-1:],lw=1.0,label='实际A企业的销售额')

plt.plot(t, aM[winwide-1:1-winwide],lw=3.0, label='A企业销售额的移动平均值')

plt.xticks(fontsize=15)

plt.yticks(fontsize=15)

plt.grid()

plt.title('A企业销售额',fontsize=18)

plt.legend(fontsize=10)

plt.subplots_adjust(wspace=0.2)

plt.show()

(2)运行结果截图

5.使用指数移动平均方法估计上题的A企业的销售额。移动平均间隔为3。并请添加图、坐标轴标题和图例。

(1)源代码

python 复制代码
import numpy as np

import matplotlib.pyplot as plt



plt.rcParams['font.sans-serif']=['SimHei']

volume = np.loadtxt('data1.csv',delimiter=','

,usecols=3, unpack=True, skiprows=1)



winwide = 3

print('0bservation:\n',volume)

t= np.arange(winwide-1,len(volume))

print('time:\n',t)

weights = np.exp(np.linspace(-1,0,winwide))

weights /= weights.sum()

print('weights:\n',weights)

weightMovingAVG =np.convolve(weights,volume)

print('Prediction:\n',weightMovingAVG)

plot1 = plt.plot(t,volume[winwide-1:],lw=1.0)

plot2 = plt.plot(t, weightMovingAVG[winwide-1:1-winwide], lw=2.0)

plt.title('A销售额指数移动平均',fontsize=18)

plt.xticks(fontsize=15)

plt.yticks(fontsize=15)

plt.xlabel('时间顺序',fontsize=15)

plt.ylabel('A企业销售额',fontsize=15)

plt.legend((plot1[0],plot2[0]),('真实值','指数移动平均值'),

loc='upper right',fontsize=13,numpoints=1)

plt.show()

(2)运行结果截图

相关推荐
mqiqe8 分钟前
Elasticsearch 分词器
python·elasticsearch
qystca16 分钟前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
薯条不要番茄酱16 分钟前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
今天吃饺子21 分钟前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
努力进修25 分钟前
“探索Java List的无限可能:从基础到高级应用“
java·开发语言·list
不去幼儿园1 小时前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
Ajiang28247353042 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空2 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10225 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou6 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot