您的位置:首页 > 编程语言 > Python开发

Python相关文章索引(9)

2017-06-29 12:24 274 查看

环境部署

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

①清除缓存并重启(File——>Invalidate Caches\Restart)

②设置源目录

基本常识

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

print(“祝各位身体健康”, end=’ ,’)

此处以
替换默认的换行符
\n


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

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

Tkinter

基本常识

Tkinter百度百科

python GUI编程(Tkinter)

Debug

tkinter.messagebox.showinfo doesn’t always work

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


数据科学

环境部署

Anaconda安装keras简记

win7集成显卡安装tensorflow1.0傻瓜步骤

基本常识

数据的游戏:冰与火

如何理解置信度?

Numpy

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

用法:zeros(shape, dtype=float, order=’C’)

返回:返回来一个给定形状和类型的用0填充的数组;

例子

np.zeros(5)

array([ 0., 0., 0., 0., 0.])

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

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

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.

python numpy中nonzero()的用法

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

Python中的axis=0,axis=1

axis=0表述列

axis=1表述行

numpy.newaxis

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

numpy.concatenate

Join a sequence of arrays along an existing axis.

学习NumPy(2)

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

Pandas

【原】十分钟搞定pandas

pandas使用小结(二)

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

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

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

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

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

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

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

pandas数据结构介绍

两个数据结构:Series和DataFrame

Series是一种类似于以为NumPy数组的对象,它由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(即索引)组成的。可以用index和values分别规定索引和值。如果不规定索引,会自动创建 0 到 N-1 索引。

DataFrame是一种表格型结构,含有一组有序的列,每一列可以是不同的数据类型。既有行索引,又有列索引,可以被看做由Series组成的字典(使用共同的索引)。跟其他类似的数据结构(比如R中的data.frame),DataFrame面向行和列的操作基本是平衡的。其实,DataFrame中的数据是以一个或者多个二维块存放的(不是列表、字典或者其他)。

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

Sklearn

使用sklearn做单机特征工程

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

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

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

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

Matplotlib

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

①在计算机中找到字体,选择一种中文字体

②右键可以查看其属性从而得知字体名称

③然后在程序中定义Matplotlib的字体管理,这里将其命名为zhfont1,代码如下:

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


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

plt.legend(prop=zhfont1)


Matplotlib Tutorial(译)

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

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

matplotlib学习笔记–Legend

显示图例

Debug

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版本哦!!!

‘builtin_function_or_method’ object is not subscriptable

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

P.K.

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

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

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,也是默认的轴,是列向)

python中arange()和linspace()区别

arange()
类似于内置函数range(),通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值

linspace()
通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值

[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份,
split
array_split
都没有问题,每份3个元素呗,但如果你想把它分成2份,那么问题来了,我不能一份4.5个吧,所以这时候split就会报错,而array_split可以实现这种不均等的分割,比如第一份5个,第二份4个


实战演练

1. 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

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

Python2.7网络爬虫—简单的爬取百度贴吧的小爬虫

(注:如上文作者是通过Python2.7+urllib2进行爬取的)

基本常识

Python zfill()方法

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

python3中raw_input()变成了input()

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

Debug

我的一个初衷是:我爬取下来的html,浏览器打开后内容图片和中文都可以正常的显示,而不是乱码或者content的字节所以当初衷达不到的时候,一开始的怀疑点落在了requests库的中文编码上了

代码分析Python requests库中文编码问题

然而当按照如上文所述的编码格式进行设置后,依旧不能如愿,于是乎,就想着会不会是我想打开写入的那个文件的编码问题呢?于是参考如下文章,得以如愿:

python自然语言编码转换模块codecs介绍

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

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


如果使用语言内建的open函数来打开文件,输出必定是乱码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程 python 数据科学