学习小殿大数据 爬虫Python AI Sql生活不易 我用python

Python相关文章索引(9)

2017-06-29  本文已影响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函数来打开文件,输出必定是乱码。

上一篇下一篇

猜你喜欢

热点阅读