Python实现经典排序算法(1)
在计算科学中,一个排序算法是一种能将一串数据依照特定排序方式进行排列的一种算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法中是重要的。排序算法也用在处理文字数据以及产生人类可读的输出结果。
基本上,排序算法的输出必须遵守下列两个原则:1. 输出结果为递增序列(递增是针对所需的排序顺序而言) 2.输出结果是原输入的一种排列、或是重组
……春江暮客的个人学习分享网站
在计算科学中,一个排序算法是一种能将一串数据依照特定排序方式进行排列的一种算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法中是重要的。排序算法也用在处理文字数据以及产生人类可读的输出结果。
基本上,排序算法的输出必须遵守下列两个原则:1. 输出结果为递增序列(递增是针对所需的排序顺序而言) 2.输出结果是原输入的一种排列、或是重组
……在上回faceswap深度学习AI实现视频换脸详解文章后,大家都已经学会了怎样通过训练模型来使用AI进行视频中人物脸部替换。但是现实中用来训练AI的图片资源的获取以及前期处理非常重要,如果没有良好的符合标准图片进行训练的话,也就无法获得良好的模型。
作为一名程序员,自然不能说通过手动四处收集图片了,这里春江暮客将给大家介绍一款非常火的工具google-images-download,通过谷歌搜索自动下载所需图片,免去手动下载的烦恼。
直接使用pip安装即可
pip install google_images_download
程序安装好后使用下面命令搜索下载,这里以刘亦菲为例。
googleimagesdownload --keywords "刘亦菲" --size large
只下载大图。去掉size参数下载的图片会更多一点。
豆瓣电影里面的图片非常多而且是高清图片,是个非常合适的资源,这里我们使用scrapy批量下载。
……在频率分布直方图中,当样本容量充分放大到极限时,组距极限缩短,这个时候频率直方图中的阶梯折线就会演变成一条光滑的曲线,这条曲线就称为总体的密度分布曲线。
这篇文章春江暮客将详细介绍如何使用python绘图库seaborn和panda里面的iris也就是鸢尾花卉数据集来绘制各种炫酷的密度曲线。
……春江暮客将给大家介绍最近超级火的黑科技应用deepfake,这是一个实现图片和视频换脸的app。前段时间神奇女侠加尔盖朵的脸被换到了爱情动作片上,233333。我们这里将会从github项目faceswap开始一步一步实现一个视频换脸的教程。
本技术存在一定的使用风险,本教程仅做技术交流,请不要用在其他不应该被使用的地方。
……词云,相信大家都看到过,这是一个使用python的著名的词云工具wordcloud库绘制而成的,本文将详细介绍如何使用wordcloud绘制中国四大名著之一的《红楼梦》的词云。
包括3部分:
直接上代码:
from wordcloud import WordCloud
import jieba
text = "".join(jieba.cut(open("红楼梦.txt").read()))
wordcloud = WordCloud(font_path="kaibold.ttf").generate(text)
# Display the generated image:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.margins(x=0, y=0)
plt.show()
在python学习过程中,像这些使用if else流程控制或者说函数的定义和使用都比较好理解,但是生成器是一个相对来说很难理解的概念,使用也就相对困难,本文将详细解析python里面的生成器。
python生成器generator是一个通过调用yield返回一个可迭代的生成器的函数。yield将会返回一个值,当再次调用next()的时候就返回下一个值。而不是从函数的开头开始执行,这里我们举个例子。
……今天在使用python的seaborn画热图(clustermap)的时候,发现了总是出现这个错误,而且可以知道自己的数据完全是符合条件的,在搜索了谷歌后也没有找到好的解决方法,经过摸索后这里把最终解决方法告诉大家。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from seaborn import clustermap
import seaborn as sns; sns.set(color_codes=True)
df = pd.DataFrame([["a","b","c","d","e","f"],[1,2,3,4,5,6],[2,3,4,5,6,7],[3,4,5,6,7,8]], columns=list('ABCDEF')).T
df
g = sns.clustermap(df.iloc[:,1:],cmap="PiYG")
生成dataframe并转置后,出现类型错误,TypeError: ufunc ‘isnan’ not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ”safe”
……在python实现千千音乐mp3下载 后小伙伴使用发现很多音乐在千千音乐都搜不到,所以今天春江暮客就拓展了一下酷狗音乐的下载,有源码。
同样的配方,首先在酷狗官网上直接搜索歌曲,然后打开谷歌浏览器的网络监视器,再次搜索同样的关键字就可以发现接口信息(注:此处最好再次搜索的时候查看网络,可以剔除很多多余的信息)。
只有4条网络请求,可以很方便的知道是第一条请求是真正的返回了歌曲信息,因此构造此条请求即可。
NetworkX是一个用于研究图形和网络的Python库。 NetworkX是根据BSD-new许可证发布的免费软件。可用于创造和操作复杂网络,学习复杂网络的结构及其功能。
有了NetworkX你就可以用标准或者不标准的数据格式加载或者存储网络,它可以产生许多种类的随机网络或经典网络,也可以分析网络结构,建立网络模型,设计新的网络算法,绘制网络。
……春节临近了,小伙伴们都在忙着抢票了,很多人总是被各种乱七八糟的抢票程序误导,诱骗,不如自己用python写一个12306抢票脚本好了。
言归正传,有了需求自然就要实现。技术部分,抢票程序由selenium驱动chrome进行,主要分为几下几部分。(别问我为什么不直接用requests买,有点难0-0)
……