Python相关文章索引(9)

作者: 司小幽 | 来源:发表于2017-06-29 12:14 被阅读48次

    环境部署

    解决pycharm无法导入本地包的问题(Unresolved reference 'tutorial')

    ①清除缓存并重启(File——>Invalidate Caches\Restart)
    ②设置源目录

    基本常识

    1. python3.x中如何实现print不换行

    print("祝各位身体健康", end=' ,')
    此处以替换默认的换行符\n

    1. w =StringVar(),其中w.get 和 w.set()是什么意思

    在Python中,StringVar是可变字符串,get()和set()是得到和设置其内容

    Tkinter

    基本常识

    1. Tkinter百度百科
    2. python GUI编程(Tkinter)

    Debug

    tkinter.messagebox.showinfo doesn't always work

    这是导入方式的一个问题,如果你直接import tkinter可能会出现如上错误,需替换成import tkinter.messagebox或者from tkinter import messagebox

    数据科学

    环境部署

    1. Anaconda安装keras简记
    2. win7集成显卡安装tensorflow1.0傻瓜步骤

    基本常识

    1. 数据的游戏:冰与火
    2. 如何理解置信度?

    Numpy

    1. numpy.zeros(np.zeros)使用方法--python学习笔记31

    用法:zeros(shape, dtype=float, order='C')
    返回:返回来一个给定形状和类型的用0填充的数组;
    例子
    np.zeros(5)
    array([ 0., 0., 0., 0., 0.])

    1. NumPy简明教程(二、数组2)

    reshape函数改变调用数组的形状并返回该数组

    1. Python中numpy.clip();numpy.fabs()的用法;以及math.pow()的说明

    numpy.clip(a,a_min,a_max,a=None)的运用:
    方法解释:Clip(limit)the values in the array.
    这个方法会给出一个区间,在区间之外的数字将被剪除到区间的边缘,例如给定一个区间[0,1],则小于0的将变成0,大于1则变成1.

    1. python numpy中nonzero()的用法

    nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。

    1. Python中的axis=0,axis=1

    axis=0表述列
    axis=1表述行

    1. numpy.newaxis

    从字面上是插入新的维度的意思

    1. numpy.concatenate

    Join a sequence of arrays along an existing axis.

    1. 学习NumPy(2)

    numpy.NAN来标记不合法的值,也即不是真实的值。

    Pandas

    1. 【原】十分钟搞定pandas

    2. pandas使用小结(二)

    3. pandas库学习笔记(一)Series入门学习

    Series 是一个一维数组结构的,可以存入任一一种python的数据类型(integers, strings, floating point numbers, Python objects, etc.)。

    1. pandas教程:[22]填充缺失值

    当数据中存在NaN缺失值时,我们可以用其他数值替代NaN,主要用到了DataFrame.fillna()方法

    1. pandas教程:[24]删除缺失数据

    假如数据量比较大或者有冗余,我们可以删掉有缺失值的数据,你可以选择删除行或者删除列,用的都是DataFrame.dropna(),当然Series也有dropna方法,用法相同。

    1. 《利用python进行数据分析》读书笔记--第五章 pandas入门

    pandas数据结构介绍
    两个数据结构:Series和DataFrame
    Series是一种类似于以为NumPy数组的对象,它由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(即索引)组成的。可以用index和values分别规定索引和值。如果不规定索引,会自动创建 0 到 N-1 索引。
    DataFrame是一种表格型结构,含有一组有序的列,每一列可以是不同的数据类型。既有行索引,又有列索引,可以被看做由Series组成的字典(使用共同的索引)。跟其他类似的数据结构(比如R中的data.frame),DataFrame面向行和列的操作基本是平衡的。其实,DataFrame中的数据是以一个或者多个二维块存放的(不是列表、字典或者其他)。

    1. PANDAS 数据合并与重塑(join/merge篇)

    Sklearn

    1. 使用sklearn做单机特征工程

    有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。

    1. 使用sklearn优雅地进行数据挖掘

    数据挖掘通常包括数据采集,数据分析,特征工程,训练模型,模型评估等步骤。使用sklearn工具可以方便地进行特征工程和模型训练工作

    1. 基于Spark自动扩展scikit-learn (spark-sklearn)

    Matplotlib

    1. Python 3下Matplotlib画图legned(图例)中文显示乱码的解决方法

    ①在计算机中找到字体,选择一种中文字体
    ②右键可以查看其属性从而得知字体名称
    ③然后在程序中定义Matplotlib的字体管理,这里将其命名为zhfont1,代码如下:

    zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simkai.ttf')
    

    ④最后在legend中通过prop参数进行调用:

    plt.legend(prop=zhfont1)
    
    1. Matplotlib Tutorial(译)

    一个图像(figure)意味着用户界面的整个窗口。在一个图像中可以有些子区(subplot)。subplot将绘图放置在常规的网格位置上而axes允许更自由的放置。

    1. matplotlib 可视化 —— 移动坐标轴(中心位置)

    2. matplotlib学习笔记--Legend

    显示图例

    Debug

    1. UnicodeDecodeError : 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
      在anaconda shell 里面使用pip install 总是报错'ascII' can't decode,该如何解决?

    可以尝试升级下anaconda版本哦!!!

    1. 'builtin_function_or_method' object is not subscriptable

    万一是小括号误写成中括号呢?

    P.K.

    1. numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()

    首先声明两者所要实现的功能是一致的(将多维数组降位一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。

    1. Python基础——min/max与np.argmin/np.argmax

    这里应该是拿min/max(更适合处理可迭代对象,可选的参数是key=func)与np.min/np.max(可适合处理numpy.ndarray对象,可选的参数是axis=0或者1)作比较,只不过np.argmin/np.argmax的用法与np.min/np.max相似,这里就不进行更正了。
    函数的功能不同

    前者返回值,后者返回最值所在的索引(下标)
    处理的对象不同
    前者更适合处理list等可迭代对象,而后者自然是numpy里的核心数据结构ndarray(多维数组)
    函数类型不同
    min/max是Python内置的函数
    np.argmin/np.argmax是numpy库中的成员函数
    接口不同

    min(iterable, key=func)->value
    np.argmin(a, axis=None)
    

    常见的接口如上所示,前者除了一个可迭代对象外,还接收一个函数对象(keyword argument),用于指定比较的对象(也即最值比较的内容是,将迭代对象中的元素逐个赋予func函数对象所得到返回值),可见func只可接受一个参数,如min(dict, key=dict.get)。而np.argmax更多的是进行轴上的比较(axis=0,也是默认的轴,是列向)

    1. python中arange()和linspace()区别

    arange()类似于内置函数range(),通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值
    linspace()通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值

    1. [numpy]split()和array_split()

    功能与split一样,唯一的区别是 array_split allows indices_or_sections to be an integer that does not equally divide the axis.(也就是说,你有一个array,里面如果有9个元素,你想把它分成3份,splitarray_split都没有问题,每份3个元素呗,但如果你想把它分成2份,那么问题来了,我不能一份4.5个吧,所以这时候split就会报错,而array_split可以实现这种不均等的分割,比如第一份5个,第二份4个

    实战演练

    Python将图片转换成字符画

    Python将图片转换为字符画

    Debug

    如果你没有PIL模块,想通过pip进行安装的话,可能会报错如下:
    could not find a version that satisfies the requirement……
    于是手动到官网下载(注:此处没有x64版本可下载,只能下载32位的了),下载得到PIL-1.1.7.win32-py2.7.exe,
    就像作者的第二篇文章所述:
    Python安装第三方库PIL时失败的解决办法
    但也许,我们未必如作者般那么幸运:手动安装,会自动识别之前安装的Python路径,一路默认就可以了
    兴许还会半路来个拦路虎,比如这个:

    拦路虎
    此时,你可能需要执行下如下文章所述的脚本:
    【已解决】PIL安装异常 “python version 2.7 required, which was not found in the registry.”
    然而,当你以为一切都大功告成时,满心欢喜地run了起来,也许还会蹦出个这个:
    ImportError: The _imaging C module is not installed 
    

    那就pip install pillow下吧~
    PIL The _imaging C module is not installed

    Python3.0+requests爬取百度贴吧帖子

    Python2.7网络爬虫---简单的爬取百度贴吧的小爬虫
    (注:如上文作者是通过Python2.7+urllib2进行爬取的)

    基本常识

    1. Python zfill()方法

    Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

    1. python3中raw_input()变成了input()

    2. Python3使用requests包抓取并保存网页源码的方法

    Debug

    我的一个初衷是:我爬取下来的html,浏览器打开后内容图片和中文都可以正常的显示,而不是乱码或者content的字节所以当初衷达不到的时候,一开始的怀疑点落在了requests库的中文编码上了
    代码分析Python requests库中文编码问题
    然而当按照如上文所述的编码格式进行设置后,依旧不能如愿,于是乎,就想着会不会是我想打开写入的那个文件的编码问题呢?于是参考如下文章,得以如愿:
    python自然语言编码转换模块codecs介绍

    用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode

    file = codecs.open("dddd.txt", 'r', "utf-8")
    

    如果使用语言内建的open函数来打开文件,输出必定是乱码。

    相关文章

      网友评论

      本文标题:Python相关文章索引(9)

      本文链接:https://www.haomeiwen.com/subject/fxhmcxtx.html