seaborn画小提琴图(violin plot)
简介
小提琴图是用来展示多组数据的分布状态以及概率密度。跟箱线图类似,但是可以密度层面展示更好。在数据量非常大不方便一个一个展示的时候小提琴图特别适用。而python里面的seaborn包可以很方便的画出小提琴图。
参数
小提琴图各位置对应参数,中间一条就是箱线图数据,25%,50%,75%位置,细线区间为95%置信区间。
……春江暮客的个人学习分享网站
小提琴图是用来展示多组数据的分布状态以及概率密度。跟箱线图类似,但是可以密度层面展示更好。在数据量非常大不方便一个一个展示的时候小提琴图特别适用。而python里面的seaborn包可以很方便的画出小提琴图。
小提琴图各位置对应参数,中间一条就是箱线图数据,25%,50%,75%位置,细线区间为95%置信区间。
……python中,经常会需要拷贝特定对象,在此可能就会遇到各种bug,原因就是明白这三种操作的区别,赋值,浅拷贝,深拷贝。
赋值(=),浅拷贝(copy)和深拷贝(deepcopy)比较容易区别开的是赋值和两种拷贝的区别,但是对于浅拷贝和深拷贝却不那么容易区分。
赋值语句并不会赋值对象,它仅仅是把变量和对象进行一个绑定。对一个对象的任何改变均会影响另一个对象。而拷贝可以在你改变其中一个对象的时候不改变另一个对象。
……python3的网络模块相对python2真的方便了很多,requests一个包就包含了python2的多个包,这从实例说明requests用法,作为复习和以后的参考。
requests并不是python默认安装的,没安装使用pip install requests
安装便是,下面是requests使模块使用实例。
在搭建了深度学习环境后,第一件事就是试试行不行,最简单的当然是使用已经训练好的模型拿来预测新样本了。这里我们使用kaggle上面训练好的狗狗品种预测模型进行使用说明。(后面有完整的数据和脚本,下载到本地即可运行。)
from os.path import join
image_dir = 'train/'
img_paths = [join(image_dir, filename) for filename in
['0246f44bb123ce3f91c939861eb97fb7.jpg',
'84728e78632c0910a69d33f82e62638c.jpg']]
这里选用了2张图片,保存在img_paths的list里面。
import numpy as np
from tensorflow.python.keras.applications.resnet50 import preprocess_input
from tensorflow.python.keras.preprocessing.image import load_img, img_to_array
image_size = 224
def read_and_prep_images(img_paths, img_height=image_size, img_width=image_size):##定义处理函数
imgs = [load_img(img_path, target_size=(img_height, img_width)) for img_path in img_paths]
img_array = np.array([img_to_array(img) for img in imgs])
return preprocess_input(img_array)
from tensorflow.python.keras.applications import ResNet50
my_model = ResNet50(weights='../resnet50/resnet50_weights_tf_dim_ordering_tf_kernels.h5')
test_data = read_and_prep_images(img_paths)
preds = my_model.predict(test_data)
import sys
# Add directory holding utility functions to path to allow importing
sys.path.append('~/utils')
from decode_predictions import decode_predictions
from IPython.display import Image, display
most_likely_labels = decode_predictions(preds, top=3, class_list_path='../resnet50/imagenet_class_index.json')
for i, img_path in enumerate(img_paths):
display(Image(img_path))
print(most_likely_labels[i])
[('n02097209', 'standard_schnauzer', 0.56502265), ('n02097047', 'miniature_schnauzer', 0.31319875), ('n02097130', 'giant_schnauzer', 0.045194548)]
[('n02092339', 'Weimaraner', 0.99767154), ('n02099849', 'Chesapeake_Bay_retriever', 0.001392837), ('n02109047', 'Great_Dane', 0.00032280287)]
可以看到,结果已经跑出来了,而且跟kaggle云端的运行结果一致。由于官方api下载速度非常慢还经常挂掉,而且文件路径等问题需要处理细节挺多。
……什么是人工神经网络?本文将从3个方面阐述。概念,直观例子,应用。
人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型。它由大量神经元联结进行运算,大多数情况下人工神经网络能够在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能。现代神经网络是一种非线性统计性数据建模工具。
……最近想备份网站,但是php下载文件的大小是限制的,而我也懒得装ftp再下载了,就想着暂时弄个二级域名站,然后用python(python3)的requests库直接下载网站根目录下的所有文件以及文件夹,以达到备份的目的。
pip install requests
这里需要处理的地方主要是文件夹,这里我们判断出该链接是文件夹时,自动创建文件夹,并递归继续进行操作,否则判断该链接是文件,直接使用requests get方法下载,话不多说,看代码
……不知道大家是否发现,本站所有的图片基本都是使用的webp格式。
那么webp是什么呢?WebP,是一种同时提供了有损压缩与无损压缩的图片文件格式,是由Google发展出来的。
webp图片格式可以极大地减少文件大小,但同时达到和JPEG格式相同的图片质量,因此可以显著减少图片文件在网络上的发送时间,节约网络流量
据Google较早的测试,WebP的无损压缩比网络上找到的PNG档少了45%的文件大小。而且这么好的技术大部分的浏览器已经支持。所以对于节约网络资源来说,全站采用webp格式最合适不过了,使用python来处理这个事情真是非常方便。这里我将介绍如何使用python将 JPG,JPEG,PNG等各种图片转变为webp格式。
由于本人比较喜欢看美剧,字幕组的美剧资源更新又是非常快的,而本人scrapy爬虫写的也比较多,同时维护了一个小小的影视站给朋友下载,就想着能不能够用脚本实现每天的字幕组影视资源的更新与抓取,google后发现https://blog.csdn.net/lzw2016/article/details/80384481这篇博客比较详细的把接口信息什么的都分析好了,正好可以拿来实现自己的scrapy爬虫。伸手党直接跳到最后查看源码地址下载即可。
从图片中可以看到,要获取今日更新影视,必须先登录,因此选择登录,这里我们直接使用python3的requests库的session部分就好了,相对python2来说的话,真的是方便了好多啊。
最近发现一个很有意思的画图的python库,叫做turtle,这里先说下用turtle这个库来实现用正方形画圆的思路。 每次都用乌龟(turtle)
来画出一个正方形,然后通过旋转3°后,继续画一样的正方形,在通过120次循环后就实现了完整的圆,这里当然也可以用其他的角度和次数,只要能完成360度就可以了。
……蝴蝶曲线是由Temple H·Fay发现的可用极坐标函数表示的蝴蝶曲线。由于此曲线优美,因此就想把它作为博客favicon.ico,这里我使用python
也可用球坐标表示
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 12*np.pi, 0.01)
x = np.sin(t)*(np.e**np.cos(t) - 2*np.cos(4*t)-np.sin(t/12)**5)
y = np.cos(t)*(np.e**np.cos(t) - 2*np.cos(4*t)-np.sin(t/12)**5)
plt.figure(figsize=(8,6))
plt.axis('off')
plt.plot(x,y,color='blue',linewidth = '2')
#plt.show()
plt.savefig("butter.jpg",dpi=400)
from PIL import Image
im = Image.open("butter.jpg")
favicon = im.resize((50,50))
favicon.save("favicon.ico")
至此,我们完成了使用python的matplotlib.pyplot包绘制漂亮的蝴蝶曲线的过程,把图片保存到网站跟目录就可以看到了!
……