课程篇一《怎么用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)