python、pytorch数据高效处理常用语法汇总

np.empty() 函数的用法

np.empty()返回一个随机元素的矩阵,大小按照参数定义。

 

np.argmax()函数用法

返回的是输入列表中最大值的位置

它重要的特点就是在有多个最大值的情况下,只返回第一个出现的最大值的位置。

如果需要返回所有最大值的位置的话,np.where(a == np.max(a))

 

np.sum()函数的用法

Numpy中的sum函数,无参时,所有全加;axis=0,按列相加;axis=1,按行相加;

 

两个列表的差集

ret_list = [item for item in a_list if item not in b_list] + [item for item in b_list if item not in a_list]

 

permute()函数的用法,针对Tensor

a=rand(2,3,4);  %这是一个三维数组,各维的长度分别为:2,3,4

%现在交换第一维和第二维:

permute(A,[2,1,3])  %变成3*2*4的矩阵

参考:https://blog.csdn.net/york1996/article/details/81876886

 

np.random.permutation()函数的使用

这个函数用来随机排列一个数组

参考:https://blog.csdn.net/zhlw_199008/article/details/80569167

 

contiguous()函数的用法

view只能用在contiguous的variable上。如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。 

一种可能的解释是: 
有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。

 

torch.tensor.view()函数的用法

torch.Tensor.view会返回具有相同数据但大小不同的新张量。 返回的张量必须有与原张量相同的数据和相同数量的元素,但可以有不同的大小。一个张量必须是连续contiguous()的才能被查看。类似于Numpy的np.reshape()。

 

torch.squeeze() 和torch.unsqueeze()的用法

1、torch.squeeze()主要是对数据维度进行压缩,去掉维数为1的维度。比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行。

1)torch.squeeze(a)就是将a中所有为1的维度删掉。不为1的维度没有影响。

2)a.squeeze(N) 或b=torch.squeeze(a,N)就是去掉a中指定位置的维数为一的维度。

2、torch.unsqueeze()主要是对数据维度进行扩充,给指定位置加上维数为1的维度。比如原本有个三行的数据(3),在0的位置加了一维就变成一行三列(1,3)。

1)a.squeeze(N) 或b=torch.squeeze(a,N)就是在a中指定位置N加上一个维数为1的维度。

:squeeze()和unsqueeze()参数均可以为负数,例如-1相当于倒数第一个位置。

 

np.clip(a, a_min, a_max, out=None)的用法

表示会给出一个区间,在区间之外的数字将被区间边缘数字替代,例如给定一个区间[0,1],小于0的将变成0,大于1则变成1,其余不变。

 

np.ravel()函数的用法

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

 

np.argsort()[num]函数的用法

将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index。

 

torch.cat的用法

把两个tensor拼接在一起:C = torch.cat( (A,B),0 ) #按维数0拼接(竖着拼)C = torch.cat( (A,B),1 ) #按维数1拼接(横着拼)

使用torch.cat((A,B),dim)时,除拼接维数dim数值可不同外其余维数数值需相同,方能对齐。

 

numpy乘法的用法总结

1)A*B表示按元素位置相乘

2)A.dot(B)表示按矩阵相乘

pytorch乘法的用法总结

1)torch.mm(A,B)或A.mm(B)或torch.matmul(A,B)表示按矩阵相乘

2)torch.mul(A,B)表示按元素位置相乘

 

long()的用法

 

你可能感兴趣的:(python,pytorch,python高效率,pytorch高效率)