课程篇一《怎么用python来统计小助手工作量》
【摘要】 统计前,我们先做点有意义的事,比如画个画吧!怎么让机器可以像个艺术大师一样!## 载入所需库import cv2import timeimport matplotlib.pyplot as pltimport numpy as npimport urllib.request%matplotlib inlinedef style_transfer(pathOut='', ...
统计前,我们先做点有意义的事,比如画个画吧!怎么让机器可以像个艺术大师一样!
##################################
# 更新Anaconda
conda update conda
# 更新所有包
conda update --all
##################################
# 添加清华源,清华源不行,改中科大吧
# 执行以下命令
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
# Ubuntu Anaconda 使用改文件的方式添加清华源
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
##################################
## 载入所需库
import cv2
import time
import matplotlib.pyplot as plt
import numpy as np
import urllib.request
%matplotlib inline
def style_transfer(pathOut='',
model='',
width=None,
jpg_quality=80):
## 读入原始图片
req = urllib.request.urlopen('http://blog.yxmos.com/bag1.jpg')
arr = np.asarray(bytearray(req.read()), dtype=np.uint8)
img = cv2.imdecode(arr, -1)
(h, w) = img.shape[:2]
if width is not None:
img = cv2.resize(img, (width, round(width * h / w)), interpolation=cv2.INTER_CUBIC)
(h, w) = img.shape[:2]
## 加载预训练模型
print('加载预训练模型......')
net = cv2.dnn.readNetFromTorch(model)
## 前馈网络计算
blob = cv2.dnn.blobFromImage(img, 1.0, (w, h), (103.939, 116.779, 123.680), swapRB=False, crop=False)
net.setInput(blob)
start = time.time()
output = net.forward()
end = time.time()
print('风格迁移用时:%s秒'%(end - start))
## 输出结果
output = output.reshape((3, output.shape[2], output.shape[3]))
output[0] += 103.939
output[1] += 116.779
output[2] += 123.680
output = output.transpose(1, 2, 0)
cv2.imwrite(pathOut, output, [int(cv2.IMWRITE_JPEG_QUALITY), jpg_quality])
outputImg = cv2.imread(pathOut)
plt.figure(figsize=(15,15))
plt.subplot(131)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.subplot(132)
imgStyle = cv2.imread('../data/muse.jpg')
plt.imshow(cv2.cvtColor(imgStyle, cv2.COLOR_BGR2RGB))
plt.subplot(133)
plt.imshow(cv2.cvtColor(outputImg, cv2.COLOR_BGR2RGB))
plt.show()
pathOut = '../../tmp/result_img01.jpg'
model = '../data/the_muse.t7'
style_transfer(pathOut, model, width=500)
可爱的小助手负责给学员们答疑,从早忙到晚。怎么让公司的同事们直观感知到这个“从早忙到晚”的工作状态呢?
好了,到这里,Python就帮上了大忙,我们从微信群里提取了一段时间内各各学员提问记录,存成了如下结构的文件:
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 读取文件
df = pd.read_csv("../data/ask_time.csv")
# 将秒转换成每天24小时制时间
df['time'] = df['createdTime'].astype(int) % 86400 // 3600
# 时区转换
df['time'] = (df['time'] + 8) % 24
# 按从0点到23点显示
results_df = df['time'].value_counts().sort_index()
results_df.plot.bar()
plt.show()
这结果是一张柱状图,横坐标是每天的时间,从0点到23点,纵坐标是问题回答量。
看吧,从早上9点上班开始,一直到半夜23点,甚至0点,小助手一直都辛勤劳动着,铁证如山。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)