查看原文
其他

Python中的实用小技巧

2017-10-09 机器学习算法与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])

招募 志愿者

广告、商业合作

请发邮件:357062955@qq.com

喜欢,别忘关注~

帮助你在AI领域更好的发展,期待与你相遇!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存