随便记记,一些tensor / numpy / pandas的操作【遇到新的了随缘更新】

1、tensor复制扩充(扩充维度+复制),例如从[1]变成 [[1], [1], [1] ...]

我是用在测试的时候,使用预测结果与全部特征嵌入进行计算时,将目标特征嵌入扩充维度并复制batch_size 份(参考 记录一个Tensor操作——扩充维度+复制 - 知乎 (zhihu.com)

# 原始tensor x
x = torch.Tensor([[1, 2, 3], [4, 5, 6]])
'''
torch.Size([2, 3])
tensor([[1., 2., 3.],
        [4., 5., 6.]])
'''

# 在dim=0的位置,扩充一维,无填充,注意结果中中括号的数量
t = x.unsqueeze(0)
'''
torch.Size([1, 2, 3])
tensor([[[1., 2., 3.],
         [4., 5., 6.]]])
'''

# 把第0维(也就是刚扩充的无填充的那一维)复制4份,其余维度复制1份(相当于无操作)
# 注意:repeat函数参数的数量必须和dim数量保持一致,即在此处必须填(4,1,1)而不能填(4),这也是为什么后两维需要填1
y = t.repeat(4, 1, 1)
'''
torch.Size([4, 2, 3])
tensor([[[1., 2., 3.],
         [4., 5., 6.]],

        [[1., 2., 3.],
         [4., 5., 6.]],

        [[1., 2., 3.],
         [4., 5., 6.]],

        [[1., 2., 3.],
         [4., 5., 6.]]])

'''

2、ndarray多个维度同时插入,元素添加操作,用在计算预测结果的时候(这个真的,我为难了好久,结果发现可以直接插入,哭😭)(参考 (1条消息) Python笔记:操作ndarray元素:访问、删除、插入_Johnny丶me的博客-CSDN博客_ndarray 插入

x = np.array([1, 2, 3, 4, 5])
Y = np.array([[1,2,3],[4,5,6]])
print()
print('Original x = ', x)
x = np.append(x, 6) # 秩为1的ndarray,直接append
print()
print('x = ', x)
x = np.append(x, [7,8]) # 秩为1的ndarray,也可通过列表一次添加多个
print()
print('x = ', x)
print()
print('Original Y = \n', Y)
v = np.append(Y, [[7,8,9]], axis=0) # 秩为2的ndarray,添加一行
q = np.append(Y,[[9],[10]], axis=1) # 秩为2的ndarray,添加一列; 当然也可添加两列 q = np.append(Y,[[9,99],[10,100]], axis=1)
print()
print('v = \n', v)
print()
print('q = \n', q)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值