
编程语言Python
Vic时代
这个作者很懒,什么都没留下…
展开
-
Python——嵌套列表,根据第k维进行排序
假设有嵌套列表[[‘a’, 160], [‘b’, 168]],每个元素代表一个学生,其中第一维数据表示姓名,第二维数据表示身高。现在希望根据身高对学生进行排序。>>>import operator>>>x = [['a', 160], ['b', 168]]>>>x.sort(key=operator.itemgetter(1), reverse=True)#如果不设置reverse,那么由小原创 2017-10-26 14:09:59 · 4553 阅读 · 0 评论 -
Python标准模块——pickle
import picklepickle.dump(data, f)data = pickle.load(f)原创 2017-05-22 16:28:27 · 771 阅读 · 0 评论 -
Python中奇怪的现象
1、特殊构造的列表的元素不可以自加>>>x = [[0, 0, 0, 0]] *4>>>x[0][0] += 1>>>x[[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]上面本来是想得到[[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]的。 解决: 老老实实写x的初始原创 2017-06-15 11:19:11 · 656 阅读 · 0 评论 -
Python有趣的现象——x+=y VS x=x+y
对于列表,有以下现象:>>>x = [1,2,3]>>>y=x>>>x += [4]>>>x[1,2,3,4]>>>y[1,2,3,4]>>>x = x+[5]>>>x[1,2,3,4,5]>>>y[1,2,3,4]这是因为+=操作符会调用__iadd__方法,只有在没有该方法时才会调用__add__方法。__iadd__方法会在原对象上进行更新。+操作符调用的是__add__原创 2017-06-28 20:42:49 · 2723 阅读 · 0 评论 -
Python第三方库h5py——读取mat文件并显示值
mat数据格式是Matlab默认保存的数据格式。在Python中,我们可以使用h5py库来读取mat文件。>>> import h5py>>> data = h5py.File("**.mat")>>> test = data["digitStruct/name"] #<HDF5 dataset "name": shape (13068, 1), type "|O">>>> st = test原创 2017-06-19 11:26:25 · 13049 阅读 · 1 评论 -
Python第三方库——OpenCV
在Python中可以通过下列导入语句来使用OpenCV:import cv2cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst: dsize:整数序列img = cv2.imread("*.jpg")img = cv2.resize(img, [40, 40])cv2.rectangle(img, pt1, pt2,原创 2017-05-19 21:05:19 · 1170 阅读 · 0 评论 -
Python第三方库——Matplotlib_子图共享坐标轴
import matplotlib.pyplot as pltimport numpy as npt = np.arange(0.01, 5.0, 0.01)s1 = np.sin(2*np.pi*t)s2 = np.exp(-t)s3 = np.sin(4*np.pi*t)ax1 = plt.subplot(311)plt.plot(t, s1)plt.setp(ax1.get_xti原创 2017-06-07 13:51:02 · 18260 阅读 · 0 评论 -
Python第三方库——Matplotlib_在同个figure中绘制多个图并给出legend
import matplotlib.pyplot as pltline1, = plt.plot([1,2,3], linestyle='--')line2, = plt.plot([3,2,1], linewidth=4)# Create a legend for the first line.plt.legend([line1, line2], ["Line 1", "Line 2"], l原创 2017-06-07 09:30:37 · 10738 阅读 · 2 评论 -
Python第三方库——Matplotlib_绘制数据的均值和方差图
现在有一组数据,我们想绘制同时包含数据均值和标准偏差的图——ErrorBar。import random#在区间[5,15]中生成15个数据x = np.random.randint(5, 15, 15)mean = np.mean(x)std_deviation = np.std(x)plt.errorbar(1, mean, yerr=std_deviation, fmt="o")p原创 2017-06-07 08:50:18 · 23302 阅读 · 1 评论 -
Python第三方库——Numpy_怎么得到向量中出现次数最多的元素值?
现在有向量x,元素值非负,如何用Numpy得到x中出现次数最多的元素值?>>>x = np.array([2,3,1,1,4])>>>count = np.bincount(x)array([0, 2, 1, 1, 1])>>>common_value = np.argmax(count)1函数np.bincount(x)返回长度为x中最大元素值+1的np.ndarray,每个元素值对应相应原创 2017-06-01 19:17:57 · 12541 阅读 · 0 评论 -
Python基础——核心数据类型_序列_列表
列表列表方法: listname.append(x):在列表后添加元素,修改原来的列表。listname1.extend(listname2):在listname1后面添加listname2的所有元素,修改原有列表。listname.insert(pos, x):将元素x插入pos对应的位置。修改原有列表。listname.remove(x):删除列表中第一个值为x的元素。修改原有列表。listna原创 2017-01-04 18:03:11 · 641 阅读 · 0 评论 -
Python标准模块——argparse
argparse模块用于解析命令行参数。原创 2017-05-17 09:03:53 · 911 阅读 · 0 评论 -
Python标准模块——__future__
Python 2.x和Python3.x有不少不相同的地方,直接将Python 2.7的代码移植到Python 3.x中需要进行大量修改。division在Python 2.x中两个整数相除会得到一个整数,是地板除,而Python 3.x中两个整数相除得到的是精确解,地板除用//。#Python 2.x>>>50 / 3>16#Python 3.x>>>50 / 3>16.66666666原创 2017-05-17 08:57:13 · 784 阅读 · 0 评论 -
Python第三方库——Numpy
np.flatnonzero(a):等价于a.ravel().nonzero()[0] 参数: a:ndarray 返回:ndarray,返回a的flatten形式中非0元素的索引np.ravel(a, order='c'):返回a的flatten形式 参数: a:array_like order:字符,指定读a的顺序,可取值{‘C’:按行, ‘F’:按列, ‘A’:, ‘K’:按在内原创 2017-03-08 12:08:02 · 7048 阅读 · 0 评论 -
Python基础——核心数据类型_序列_字符串
2、 序列容器是包含其他对象的任意对象,序列及映射(字典)是常见的容器,序列中的每个元素都对应一个位置,而映射中的元素都对应一个键。集合(set)也是容器的一种。序列是python中的最基本的数据结构。序列中的每个元素被分配一个序号,或者称为索引,和c语言中的数组一样,下标从0开始。python包含6种内建的序列:列表、元组、字符串、Unicode字符串、xrange对象、buffer对象。最常用的原创 2017-01-04 18:02:25 · 680 阅读 · 0 评论 -
Python基础——语句_print
python2.*的print是一个语句,而非函数调用,后面可接任意类型。print语句的语法如下:print x, y #把对象x, y打印到sys.stdout中,在对象之间加空格,在y之后添加换行print x, y, #同上,不同之处在于y后不会添加换行 print >> afile, x, y #把文本输出到文件对象afile中,而不是sys.stdout中 print语句把对象输出原创 2017-01-09 12:05:54 · 1248 阅读 · 0 评论 -
Python标准模块——xml
8、 xml文件这一模块的介绍方法区别于前面的模块介绍方法,根据使用顺序进行介绍。import xml.etree.ElementTree读取文件tree = ElementTree.parse(xlsfile)root = tree.getroot()读取tree中的某个tagtags = root.getiterator(tag_name)读取tag下属的tagtag.findall('*/t原创 2017-01-04 18:28:09 · 429 阅读 · 0 评论 -
Python——str字符串和unicode字符串
对于处理过中文的Python程序员来说,想必被UnicodeEncodeError和UnicodeDecodeError并不陌生。为了更好的理解Python中的编码问题,我们首先介绍一下字符编码以及Python的两种字符串类型:str和unicode之间的区别。字符编码我们在编辑器中输入的文字,对用户来说是可读的。但是机器只能读懂01串,那怎么把我们方便阅读的符号转换成机器能读懂的01串呢?这就需要原创 2017-07-18 17:34:30 · 46473 阅读 · 1 评论 -
Python爬虫——实战四:爬取亚马逊的商品价格
亚马逊的html源码中直接包含了价格信息,所以不再需要逆向工程或者渲染引擎方法获取价格信息。 但是在使用urllib2.openurl()获取html页面时,总是返回503错误。尝试用用户代理、Cookies都不行。搜索这个问题的时候,发现网友给出的代码使用requests库。测试了一下,可以成功获取页面。原创 2017-08-18 18:23:03 · 14905 阅读 · 2 评论 -
Python爬虫——实战二:爬取天猫产品价格(逆向工程方法)
天猫上的产品价格请求URL的分析过程和爬京东价格的时候是类似的。 通过分析,得到天猫商品价格的请求URL:’https://mdskip.taobao.com/core/initItemDetail.htm?itemId=556708482118(这个是简化之后的,可用)。但是这个网页打开之后出现403 Forbidden 错误。这是因为在发送请求的时候需要添加Referer参数,其格式为“htt原创 2017-08-17 21:31:31 · 10650 阅读 · 8 评论 -
Python爬虫资料
http://www.jianshu.com/p/170c52af02a1原创 2017-08-18 19:39:47 · 957 阅读 · 0 评论 -
Python资料
1、关注全球的Python开发者在做什么:http://www.pycoders.com/archive/原创 2017-06-10 10:32:51 · 447 阅读 · 0 评论 -
Python标准模块——shutil
shutil.copy(source_path, des_path):可以把文件拷贝到指定文件夹下。当des_path只是一个目录时,把source_path对应的文件拷贝到des_path目录下;如果des_path是一个文件,那么除了把source_path对应的文件拷贝到des_path文件所在的目录下,还要把源文件重命名为新文件名。原创 2017-10-16 18:06:58 · 732 阅读 · 0 评论 -
Python标准模块——os
2、 osimport osos.path os.path.dirname(path) 返回对象前面的目录路径 举例import osos.path.dirname("dir/1.png")#"dir"os.path.basename(path) 返回对象名 举例import osos.path.basename("dir/1.png")#"1.png"os.p原创 2017-01-04 18:24:21 · 505 阅读 · 0 评论 -
Python爬虫——实战三:爬取苏宁易购的商品价格(渲染引擎方法)
苏宁易购的商品价格请求URL为https://pas.suning.com/nspcsale_0_000000000152709847_000000000152709847_0000000000_10_010_0100101_20268_1000000_9017_10106_Z001___R0104002_46.5_0_.html?callback=pcData&_=1503023077300价格在原创 2017-08-17 22:12:16 · 9583 阅读 · 3 评论 -
Python——提取复数类型的数组的的实数部分和虚数部分
>>> import numpy as np>>> x = np.array([[1+1j, 2+2j], [3+3j, 3+3j]])>>> np.real(x)array([[ 1., 2.],>>> np.imag(x)array([[ 1., 2.], [ 3., 3.]])原创 2017-10-30 17:32:12 · 47689 阅读 · 2 评论 -
Python标准模块——PIL
7、 PILpython自带的图像处理模块。from PIL import Image, ImageDrawImage模块Image.open(image_fn) 打开指定图像,对于彩色图像,不管图像格式是PNG、BMP或者JPG,返回的图像对象的模式为’RGB’,而对于灰度图像,不管图像格式为何,模式为’L’。 返回的是图像对象。 举例from PIL import Image, Image原创 2017-01-04 18:27:33 · 1158 阅读 · 0 评论 -
Python第三方库——xlrd&xlwt读写Excel表
现在已有data.xls(或者.xlsx)文件,想要读取表中数据。import xlrdbook = xlrd.open_workbook("data.xls")sheet = book.sheet_by_name("sheet1")for r in sheet.nrows: x = sheet.cell(r, 0).value希望把数据保存到表data.xls中去:import xl原创 2017-08-23 11:54:37 · 1463 阅读 · 0 评论 -
Python——读取二进制文件
读取二进制文件并转换成整数在处理MINIST数据集的时候,从网站上下载文件是二进制文件。我们以训练图像数据为例,前4个字节存储的是magic number (2051)。怎么根据这四个字节得到整数2051呢?在使用’rb’方式读取的时候,我们得到的是str对象,其中保存的是二进制数据而不是8位文本序列。所以问题变成,怎么把二进制str转换成整数?>>>with open("file", 'rb')原创 2017-09-25 11:13:00 · 5595 阅读 · 0 评论 -
Python爬虫——实战一:爬取京东产品价格(逆向工程方法)
在京东的单个产品页面上,通过查看源码检查html,可以看到 <span class="p-price"><span>¥</span><span class="price J-p-1279836"></span></span> 这里没有直接给出价格。这是因为价格数据是通过JS动态加载的,而HTML源码中并不包含动态加载的页面内容。获取京东商品的价格#-*- coding:utf-8 -*-imp原创 2017-08-15 21:27:43 · 20972 阅读 · 10 评论 -
Python爬虫之抓取数据——正则表达式/Beautiful Soup/Lxml
有三种抓取网页中数据的方式:正则表达式,Beautiful Soup和lxml。正则表达式items = re.findall(regexp, str)items = re.findall('<div.*?class="p-img">.*?<a.*?title="(.*?)".*?href="(.*?)".*?="//(.*?)".*?<div.*?class="p-price">.*?<i>(.*原创 2017-08-14 11:16:48 · 2466 阅读 · 0 评论 -
Python爬虫之爬取——限制下载速度
为了避免造成服务器过载,可以在两次下载之间添加时延,从而降低爬虫下载速度。原创 2017-08-14 10:29:25 · 6748 阅读 · 1 评论 -
Python爬虫之爬取——使用代理
使用代理来访问网站。使用urllib2模块支持代理headers = {'User-agent': agentname}request = urllib2.Request(url, headers=headers)proxy = ""opener = urllb2.build_opener()proxy_params = {urlparse.urlparse(url).scheme: pr原创 2017-08-14 10:19:18 · 900 阅读 · 0 评论 -
Python爬虫之爬取——解析robots.txt文件
robots.txt文件规定了爬虫在爬取该网站时有哪些约束。robots.txt示例下面给出一个robots.txt示例:禁止用户代理为BadCrawler的爬虫爬取该网站#section 1User-agent: BadCrawlerDisallow: /无论哪种用户代理,都应该在两次下载请求之间有5秒的时延;/trap链接是禁止链接,如果访问了这个链接,服务器就会封禁你的IP一分钟或者永久原创 2017-08-14 10:11:19 · 10288 阅读 · 0 评论 -
Python模块——time
time.sleep(sec):推迟执行程序,参数表示秒数time.sleep(5)原创 2017-08-14 10:45:28 · 424 阅读 · 0 评论 -
Python基础——核心数据类型_集合
集合中的元素是无序的,可以把集合看作无值的字典的键。 创建{'h', 'a', 'm'}#orset('ham')操作 交:X & Y 并:X|Y 差:X - Y,返回集合对象,其中元素在X中存在但在Y中不存在原创 2017-01-04 18:05:07 · 455 阅读 · 0 评论 -
Python第三方库——urlparser
import urlparser new_link = urlparse.urljoin( seed url, link)原创 2017-08-14 09:51:42 · 884 阅读 · 0 评论 -
Python第三方库——Matplotlib库
import matplotlib.pyplot as pltmatplotlib.pyplot模块plt.ion():打开交互模式fig, ax = plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw):创建一个f原创 2017-03-08 13:00:17 · 14408 阅读 · 0 评论 -
Python基础——语句_赋值
赋值a, b c = 1, 2, 3 特性:赋值语句建立对象的引用变量在首次赋值时创建变量名在使用之前必须先赋值隐形赋值:除了=赋值外,模块导入、函数和类的定义、for循环变量以及函数参数是隐式赋值运算序列赋值两侧可以是任意类型的序列,也可以混合使用,只要长度相等即可。a, b = 1, 2[c ,d] = ["s", "g"][x, y, z] = 'mnk'多目标赋值x = y原创 2017-01-05 10:53:57 · 755 阅读 · 0 评论 -
python基础——语句_控制语句
1、 条件语句 if/elif/elseif 表达式: 语句else: 语句if 表达式: 语句elif 表达式: 语句else: 语句我们知道C语言或者C++语言中有分支语句:switch/case,可以根据变量值选择动作。但python语言中没有提供,如果想要使用分支语句,可以通过字典实现。python中一条内原创 2017-01-09 12:43:33 · 630 阅读 · 0 评论