Pytorch/numpy/pandas常用语法记录(持续更新)

  • 1 张量相加的四种方法
  • 2 .item()用法
  • 3 torch.view()用法
    • 例1 普通用法
    • 例2 参数使用
  • 4 torch.transpose()用法
  • 5 torch.contiguous()用法
  • 6 df.head()用法
  • 7 .unique()和.nunique()用法
  • 8 np.shape用法
  • 9 shuffle() 函数
  • 10 data[:,j]
  • 11 pred.max(-1)
  • 12 nn.Linear( )
  • 13 np.linspace()
  • 14 np.size()
  • 15 torch.pow()

1 张量相加的四种方法

x = torch.rand(5, 3)
y = torch.rand(5, 3)
#第一种
print(x + y)
#第二种
print(torch.add(x, y))
#第三种
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
#第四种
y.add_(x)
print(y)

2 .item()用法

一个元素张量可以用 item 得到元素值。

x = torch.randn(1)
print(x)
print(x.item())

#结果是
tensor([-0.4464])	# 打印张量
-0.44643348455429077	# 打印元素值

3 torch.view()用法

view()的作用相当于numpy中的reshape,重新定义矩阵的形状。以下两个例子的结果相同。

例1 普通用法

import torch
v1 = torch.range(1, 16) # v1为1*16大小的张量,包含16个元素
v2 = v1.view(4, 4)  # v2为4*4大小的张量,同样包含16个元素
# 注意view前后的元素个数要相同,不然会报错

例2 参数使用

import torch
v1 = torch.range(1, 16) 
v2 = v1.view(-1, 4)  # view中一个参数定为-1,代表动态调整这个维度上的元素个数,以保证元素的总数不变。

4 torch.transpose()用法

对张量进行翻转,改变了张量的形状。

t = torch.tensor([[2, 1, 3], [4, 5, 9]])
t2 = t.transpose(0, 1)
t2
# 结果:
tensor([[2,4],
        [1,5],
        [3,9])

5 torch.contiguous()用法

torch.contiguous()方法语义上是“连续的”,经常与torch.permute()、torch.transpose()、torch.view()方法一起使用。要理解具体的原因,可参考博客:https://blog.csdn.net/qq_37828380/article/details/107855070
判断是否contiguous用torch.Tensor.is_contiguous()函数。

x = torch.ones(10, 10)
x.is_contiguous()  # True
x.transpose(0, 1).is_contiguous()  # False
x.transpose(0, 1).contiguous().is_contiguous()  # True

contiguous方法改变了多维数组在内存中的存储顺序,以便配合view方法使用。
torch.contiguous()方法首先拷贝了一份张量在内存中的地址,然后将地址按照形状改变后的张量的语义进行排列。

6 df.head()用法

将excel表格中的第一行看作列名,并默认输出之后的 5行 ,可在head后面的括号里面直接设置想要输出的行数。

df = pd.read_csv(os.path.join(DATA_ROOT,'labels.csv'))
df.head()

7 .unique()和.nunique()用法

  • unique():是以 数组形式(numpy.ndarray)返回列的所有不同的值,即唯一值(特征的所有唯一值),并按照从小到大排序。相当于把list变为set。
    详解:https://blog.csdn.net/weixin_39549734/article/details/81224567
  • nunique() :Return number of unique elements in the object.即返回的是唯一值的个数。

8 np.shape用法

shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。
详解:https://blog.csdn.net/qq_28618765/article/details/78081959

9 shuffle() 函数

shuffle() 方法将序列的所有元素随机排序。
注意:shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

import random

list = [20, 16, 10, 5]
random.shuffle(list)
print "随机排序列表 : ",  list

# 结果:
随机排序列表 :  [16, 5, 10, 20]

10 data[:,j]

读取 data 所有行的 j 列的数。

11 pred.max(-1)

max(-1)中的-1表示按照最后一个维度求最大值。

torch.max()[0], 只返回最大值的每个数
troch.max()[1], 只返回最大值的每个索引

12 nn.Linear( )

对输入的数据进行线性变换 y = wx + b
原型: torch.nn.Linear(in_features, out_features, bias=True)
参数:

  • in_features – 输入样本数据的大小;
  • out_features – 输出样本数据的大小;
  • bias – 如果设置为 False,则该图层将不会学习加法偏差。默认值:True

13 np.linspace()

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

在指定的间隔内返回均匀间隔的数字。
返回num均匀分布的样本,在[start, stop]。这个区间的端点可以任意的被排除在外。

>>> np.linspace(2.0, 3.0, num=5)
    array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
    array([ 2. ,  2.2,  2.4,  2.6,  2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
    (array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)

14 np.size()

numpy.size(a, axis=None)

  • a:输入的矩阵
  • axis:int型的可选参数,指定返回哪一维的元素个数。当没有指定时,返回整个矩阵的元素个数。

size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数的函数。

>>> a = np.array([[1,2,3],[4,5,6]])
>>> np.size(a)
6
>>> np.size(a,1)	# 返回该二维矩阵的列数
3
>>> np.size(a,0)	# 返回该二维矩阵的行数
2

15 torch.pow()

实现张量和标量之间逐元素求指数操作,或者在可广播的张量之间逐元素求指数操作。

  1. torch.pow(input, exponent, out=None) → Tensor
  • input (Tensor) – 输入张量
  • exponent(float or tensor) – 指数值
  • out (Tensor, optional) – 输出张量
>>> a = torch.randn(4)
>>> a
tensor([ 0.4331,  1.2475,  0.6834, -0.2791])
>>> torch.pow(a, 2)
tensor([ 0.1875,  1.5561,  0.4670,  0.0779])

>>> exp = torch.arange(1., 5.)
>>> a = torch.arange(1., 5.)
>>> a
tensor([ 1.,  2.,  3.,  4.])
>>> exp
tensor([ 1.,  2.,  3.,  4.])
>>> torch.pow(a, exp)
tensor([   1.,    4.,   27.,  256.])
  1. torch.pow(self, exponent, out=None) → Tensor
  • self (float) – 幂运算的标量基值
  • exponent (Tensor) – 指数张量
  • out (Tensor, optional) – 输出张量
>>> exp = torch.arange(1., 5.)
>>> base = 2
>>> torch.pow(base, exp)
tensor([  2.,   4.,   8.,  16.])

你可能感兴趣的:(Python,python,numpy,pytorch,pandas)