python生成器generator,yield

在python学习过程中,像这些使用if else流程控制或者说函数的定义和使用都比较好理解,但是生成器是一个相对来说很难理解的概念,使用也就相对困难,本文将详细解析python里面的生成器。

1.什么是python生成器

python生成器generator是一个通过调用yield返回一个可迭代的生成器的函数。yield将会返回一个值,当再次调用next()的时候就返回下一个值。而不是从函数的开头开始执行,这里我们举个例子。

……

阅读全文

TypeError: ufunc 'isnan' not supported for the input types解决办法

今天在使用python的seaborn画热图(clustermap)的时候,发现了总是出现这个错误,而且可以知道自己的数据完全是符合条件的,在搜索了谷歌后也没有找到好的解决方法,经过摸索后这里把最终解决方法告诉大家。

1.生成dataframe

    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下载

python实现千千音乐mp3下载 后小伙伴使用发现很多音乐在千千音乐都搜不到,所以今天春江暮客就拓展了一下酷狗音乐的下载,有源码。

同样的配方,首先在酷狗官网上直接搜索歌曲,然后打开谷歌浏览器的网络监视器,再次搜索同样的关键字就可以发现接口信息(注:此处最好再次搜索的时候查看网络,可以剔除很多多余的信息)。

1.分析搜索接口信息

《python实现酷狗音乐mp3下载》 只有4条网络请求,可以很方便的知道是第一条请求是真正的返回了歌曲信息,因此构造此条请求即可。

……

阅读全文

python3中NetworkX网络图绘制

NetworkX是一个用于研究图形和网络的Python库。 NetworkX是根据BSD-new许可证发布的免费软件。可用于创造和操作复杂网络,学习复杂网络的结构及其功能。 

有了NetworkX你就可以用标准或者不标准的数据格式加载或者存储网络,它可以产生许多种类的随机网络或经典网络,也可以分析网络结构,建立网络模型,设计新的网络算法,绘制网络。

……

阅读全文

python3搭配selenium实现12306抢票程序

春节临近了,小伙伴们都在忙着抢票了,很多人总是被各种乱七八糟的抢票程序误导,诱骗,不如自己用python写一个12306抢票脚本好了。

言归正传,有了需求自然就要实现。技术部分,抢票程序由selenium驱动chrome进行,主要分为几下几部分。(别问我为什么不直接用requests买,有点难0-0)

……

阅读全文

python实现千千音乐mp3下载

进入千千音乐主页面,选择周杰伦的音乐告白气球,发现竟然是2016年的音乐试听都木有,悲伤。那么有没有办法可以获取到mp3文件呢?答案是肯定的。音乐下载可运行程序可在文末获取。

说干就干,打开榜单,选择新歌一首可以试听的,第一首生僻字就可以听。

《python实现千千音乐mp3下载》

1.分析接口信息

打开开发者工具,这种音乐文件肯定是通过api提交的,在毛毛多的请求中发现可以获取音乐文件的请求,看图

……

阅读全文

python画横线竖线作为分界线

在作图的时候,经常会碰到需要添加分界线的情况,那么python里面那些函数可以方便的画出水平横线或者垂直竖线呢,下面介绍两种可以方便的添加水平或者垂直直线的函数。

1.使用matplotlib.pyplot的hlines和vhlines

    ######导入需要模块
    import numpy as np
    import matplotlib.pyplot as plt
    ######这是蝴蝶曲线部分
    df = sns.load_dataset('iris')
    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.plot(x,y,color='blue',linewidth = '3')
    #######这是分割线部分
    plt.hlines(0, -3, 3,color="red")#横线
    plt.vlines(0, -2, 3,color="red")#竖线

《python画横线竖线作为分界线》

matplotlib.pyplot.hlines(y, xmin, xmax)表示横线,参数(y的值,横线开始横坐标,横线结束横坐标)

……

阅读全文

Linux挂载移动硬盘

机器重启后,移动硬盘就不识别了,需要重新挂载,但是使用fdisk -l之后并没有发现移动硬盘的踪迹。也就无从挂载了。

《Linux挂载移动硬盘》

挂载磁盘方法

首先使用fdisk -l查看当前硬盘状态。

    ➜  ~ fdisk -l 
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

    磁盘 /dev/sdb:320.1 GB, 320072933376 字节,625142448 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:gpt
    Disk identifier: AF1B577B-830C-4026-AC5F-37870D362B3C

    #         Start          End    Size  Type            Name
     1         2048       411647    200M  EFI System      EFI System Partition
     2       411648      2508799      1G  Microsoft basic 
     3      2508800    625141759  296.9G  Linux LVM       

    磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘 /dev/mapper/centos-swap:3623 MB, 3623878656 字节,7077888 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘 /dev/mapper/centos-home:261.5 GB, 261468717056 字节,510681088 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘 /dev/sda:1000.2 GB, 1000170586112 字节,1953458176 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x16f2a91f

       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1               1  4294967295  2147483647+  ee  GPT

我这里移动硬盘1T,可以知道就是最后的/dev/sda1,那么使用mount命令挂载即可

……

阅读全文

seaborn画小提琴图(violin plot)

简介

小提琴图是用来展示多组数据的分布状态以及概率密度。跟箱线图类似,但是可以密度层面展示更好。在数据量非常大不方便一个一个展示的时候小提琴图特别适用。而python里面的seaborn包可以很方便的画出小提琴图。

参数

《seaborn画小提琴图(violin plot)》

小提琴图各位置对应参数,中间一条就是箱线图数据,25%,50%,75%位置,细线区间为95%置信区间。

……

阅读全文

五步轻松实现linux免密登录

SSH英文全程Secure SHELL,是被广泛用于linux系统安全可靠的远程命令执行程序,而用来进行安全文件传输的SCP同样基于SSH的安全协议。

当服务器比较多的时候,每次都要频繁输入密码显得特别麻烦,那么怎样免密码登录且做到安全可靠呢,当然是可以的。这里我们将分为五步完成RHEL/CentOS 7.x/6.x/5.x and Fedora等linux类型服务器的免密码登录。

……

阅读全文

最近文章

分类

标签

友情链接

其它