array转list_【串讲总结】array, list, tensor,Dataframe,Series之间互相转换总结

一、前言

对于在Deep Learning的学习中总会有几个数据类型的转换,这次想把这些常用的转换做一个总结,方便以后看。

这些主要包括:Dataframe、Series(pandas), array(numpy), list, tensor(torch)

二、定义

2.1 Dataframe和Series

这里简单介绍一下这两个结构。Dataframe创建的方式有很多种,这里不赘述了。以下举个例子,因为我们这里要讲的是和array等的转换,这里全都用数字型的元素。

1bfff8efc105b8655fcb768ff2b2679a.png对于dataframe来说,我们打印出来,结构类似于一个二维矩阵格式,只是每一列和每一个行都有个index,这并且这些结构之间有很多方便的操作,在读入结构化数据的时候尤为方便,所以平时做偏结构化数据的时候, 比如excel、pickle等等,pandas的使用是绕不开的。

而其中的series相当于dataframe的一个元素,如下。

32d3d0118f533a3410d1f95e91491f26.png

Series只有row index,有点类似于一个一维向量。

而DataFrame既有行索引也有列索引,它也可以被看做由Series组成的字典(共同用一个索引

2.2 array

数组结构是由不同维度的list转换来的,用array的原因主要在于有更多的矩阵操作,数据使用起来更方便,比如转置、矩阵相乘、reshape等等。

fd30684d0335da500ea738c1fc178f80.png

2.3 tensor

张量是在深度学习框架中的一个数据结构,把数据喂进模型中需要把数据转换为tensor结构,等我们再取出来做框架以外的操作,比如保存成文件,用plot画图,都需要重新转换为array或list结构。

a7fc49e647e67ec5f5be6615d1d3b5fb.png

三、互相转换

先用一个例子直观举例下

193c21178664879e1f68e30bdc977d6f.png
7e0e71dbd1b1e65741e4d0ea6154c325.png

四、详细总结

4.1 Dataframe到Series

挑一列的index取出

Series = Dataframe['column']

4.2 Series到list

list = Series.to_list()

4.3 list 转 array

array = np.array(list)

4.4 array 转 torch.Tensor

tensor = torch.from_numpy(array)

4.5 torch.Tensor 转 array

array = tensor.numpy()
# gpu情况下需要如下的操作
array = tensor.cpu().numpy()

4.6 torch.Tensor 转 list

# 先转numpy,后转list
list = tensor.numpy().tolist()

4.7 array 转 list

list = array.tolist()

4.8 list 转 torch.Tensor

tensor=torch.Tensor(list)

4.9 array或者list转Series

series = pd.Series({'a': array})
series2 = pd.Series({'a': list})

之后这里的操作就多了,看你具体需求了,也可以多个series拼成一个dataframe, 如下, 其他操作不一一赘述了

df = pd.DataFrame({'aa': series, 'bb': series2})
更多精彩内容(请点击图片进行阅读) eb7692fa00f780b887b4a063b0cd18f2.png a1dda3bac9a9ceb0a6faf2c42b1056d2.png 472621f8eada0419ec9af467431f272b.png 公众号: AI蜗牛车 保持谦逊、保持自律、保持进步

672c523490561bbf9107f10bc2f40202.png

个人微信 备注: 昵称+学校/公司+方向 如果没有备注不拉群! 拉你进AI蜗牛车交流群

011494807e956b676c6a660763cca442.png

点个在看,么么哒!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值