python函数笔录

python

1.split()

str.split(str="", num=string.count(str)).

通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num -- 分割次数。默认为 -1, 即分隔所有。

split()就是将一个字符串分裂成多个字符串组成的列表

例如:

s1='w,e,r'
l1=[]

l1.append(s1.strip(',').split(','))
l2=s1.split(',')
print(l1)
print(l2)

输出结果为:

[['w', 'e', 'r']]
['w', 'e', 'r']

注意:经常一起连用的有strip()函数,作用是去除字符串首尾指定符号

 

 

2.scatter()
绘制散点图

matplotlib.pylot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
其中,参数s指点的大小,c指点的颜色,market指数据点显示的格式,可以是点、线或者文字等形式显示,alpha指的是透明度,edgecolors指图像的边界,也就是描边,linewidth指的是描边的粗细

import matplotlib.pyplot as plt

plt.scatter(x=1,y=1)

plt.show()

3.np.argsort()

1 import numpy as np
2 x=np.array([1,4,3,-1,6,9])

我们发现argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y

np.argsort()[num]

当num>=0时,np.argsort()[num]就可以理解为y[num];

当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index,np.argsort()[-2]即输出x中第二大值对应的index,依此类推

 

 

OS:

1.os.listdir(path)

path -- 需要列出的目录路径

listdir()函数返回指定路径下的文件和文件夹列表。

2.os.path.join()

os.path.join()函数用于路径拼接文件路径。
os.path.join()函数中可以传入多个路径:

    会从第一个以”/”开头的参数开始拼接,之前的参数全部丢弃。

    以上一种情况为先。在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数的上一个参数开始拼接。

 

 

 

pool:

Python中,multiprocessing库中Pool类代表进程池,其对象有imap()和imap_unordered()方法。
两者都用于对大量数据遍历多进程计算,返回一个迭代器(multiprocessing.pool.IMapIterator)。

imap返回结果顺序和输入相同,imap_unordered则为不保证顺序。

经过测试,发现Python多进程和imap()的一些特性:

1、iter = pool.imap(fn, data) 一旦生成,无论使不使用iter,多进程计算都会开始。
计算结果会缓存在内存中,所以要注意内存用尽的问题。

2、fn,即执行函数,不可以是局部对象(不能嵌套在其他函数里),否则会报错:

def fn_outer():
    def fn(a,b):
        return a+b
    pool = Pool()
    pool.imap(fn, [(1,2)])
    pool.close()

AttributeError: Can't pickle local object 'fn_outer..fn'

3、使用进程池map数据时,如果每次的运算量很小,最后的效率还不如单进程。这时多进程切换造成的开销已大于多进程计算提升的效率。
这时,可以将输入数据集分段,每次map,计算一段。具体分段多大时获得最佳效率,需要实际测试。

4、注意,Pool使用完毕后必须关闭,否则进程不会退出。
有两种写法,推荐第2种:
注意,第二种中,必须在with的块内使用iter。

pool = Pool()
iter = pool.imap(func, iter)
for ret in iter:
    # do something
pool.close()
with Pool() as pool:
    iter = pool.imap(func, iter)
    for ret in iter:
        # do something

原文介绍:https://www.jianshu.com/p/4c4ca5bccc09

 

 

 

glob方法

glob方法返回所有匹配的文件路径列表(list),该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。

iglob方法

获取一个迭代器( iterator )对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而 glob.iglob一次只获取一个匹配路径。下面是一个简单的例子

 

 

4.torch.max()

torch.max(input, dim, keepdim=False, out=None) -> (Tensor, LongTensor)
按维度dim 返回最大值,并且返回索引。
torch.max(a,0)返回每一列中最大值的那个元素,且返回索引(返回最大元素在这一列的行索引)。返回的最大值和索引各是一个tensor,一起构成元组(Tensor, LongTensor)

 

5.torch.view()


 

你可能感兴趣的:(python函数笔录)