Python中的实用小技巧

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第二

【Python】:排名第三

【算法】:排名第四

话说python是一个大杂会,既可以用来做web,也可以用来做运维,还可以用来做数据科学(数据分析、数据挖掘、机器学习),正是因为这么庞大的功能,所以特意对一些小技巧进行记录:

搜索指定目录下的文件(通配符)

import glob glob.glob('C:\\Users\\Administrator\\Desktop\\*.csv') glob.glob('C:\\Users\\Administrator\\Desktop\\*\\*.r')

对字典进行排序

test={'a':1,'b':3,'c':2} sorted(test.iteritems(),key=lambda x:x[0],reverse=True) #对key排序 sorted(test.iteritems(),key=lambda x:x[1],reverse=True) #对value排序

对一个列表进行的不同类别计数

import collections test=['a','a','b','c','c','c'] collections.Counter(test) 结果为: Counter({'c': 3, 'a': 2, 'b': 1})

random模块中随机抽取

from random import choice test=[1,2,3,4] choice(test) #每次选取其中的一个结果,每次都不一样 from random import sample test=xrange(1000) sample(test,100) #每次随机抽取100个,跟R里面的sample随机函数差不多

改变工作目录

import os os.chdir('C:\\Users\\Administrator\\Desktop')

计时工具timeit

import timeit def test(): x=xrange(100000) return x def test_1(): x=range(100000) return x timeit.timeit(test,number=1) timeit.timeit(test_1,number=1) #可以看到xrange效率比range效率要高很多,包括numpy库中的arange,xrange效率是最高的

对列表元素去重的方法

test=[1,1,2,2,3,3,3,4] 第一种方法: list(set(test)) 第二种方法: {}.fromkeys(test).keys()

设置pyhon中默认的编码

import sys if sys.getdefaultencoding()!='utf-8': reload(sys) sys.setdefaultencoding('utf-8') else: pass

find和rfind函数,字符串操作对象

这个函数与sas里面的find函数类型,找到返回为大于-1的数,没找到为返回为-1的数,rfind从右边开始找起,一旦找到,则终止,跟findall有点区别,

test="abcdefgh" test.find("g") Out[12]: 6 test.rfind("z") Out[14]: -1 test="abadefgh" test.rfind("a") Out[18]: 2 经常与glob模块中glob函数配合一起使用 file_names = glob('.\Sample\*\*.txt') for file_name in file_names: if file_name.find("C000007") > -1: file_type ="auto" else: pass

利用numpy模块中的 np.concatenate()函数合并array

import numpy as np test=[np.array([1,2,3]),np.array([4,5,6,7]),np.array([9,10])] test Out[11]: [array([1, 2, 3]), array([4, 5, 6, 7]), array([ 9, 10])] np.concatenate(test) Out[12]: array([ 1, 2, 3, 4, 5, 6, 7, 9, 10])

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2017-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏玄魂工作室

如何学Python 第十八课 位运算符介绍

欢迎回来! 在我们上一次的培训课程中,我们介绍了类以及OOP如何使编程/脚本更容易。 今天我们将休息一下,并且介绍一些相当简单的按位运算符。 按位运算符相对简单...

3325
来自专栏行者悟空

我眼中的并发编程——Fork/Join模型

1845
来自专栏苦逼的码农

Hash冲突之开放地址法

比如说我的输入是任意一个自然数(0,1,2,3...),而我要求经过一个函数后我的输出的数的范围要在0-9这样一个范围之间。

3702
来自专栏java一日一条

谈谈 Hash Table

结构体(或对象)可以是基本数据类型或者其他结构体(或对象)的组合。结构体或对象一般用来描述一个复杂数据实体。

532
来自专栏C/C++基础

C++0x 通用属性

C++在不断的发展,但每一阶段的C++标准提供的功能都很难完全满足现实需求,于是为了弥补标准的不足或者扩增特性应用场景所需的特性,各大C++编译器厂商多多少少在...

1182
来自专栏ACM算法日常

I Hate It!(线段树-超详细~)- HDU 1754

很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求...

852
来自专栏java达人

哈希表

哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接...

1827
来自专栏take time, save time

你所能用到的BMP格式介绍(二)

一、可能你忽视的基础         在正式开始之前,我不得不从最基本的地方开始,因为这些地方大多数人会忽视的一干二净,如果不在开始进行说明,那么在后面一定会有...

2947
来自专栏灯塔大数据

技术 | Python从零开始系列连载(十九)

但它的特点就是下次使用next(a)时,接着上次的断点继续运行,直到下一个yield

1083
来自专栏AI深度学习求索

算法图解(五)|散列表与字典

我们之前介绍过简单查找和二分查找,简单查找是从头开始一个个查找,二分查找是在有序列表中按分而治之的思想进行查找,虽然二分查找已经很快速了,但是在有些情况下,还是...

1241

扫码关注云+社区

领取腾讯云代金券