【深度学习】array, list, tensor,Dataframe,Series之间互相转换总结
一、前言
對于在Deep Learning的學習中總會有幾個數據類型的轉換,這次想把這些常用的轉換做一個總結,方便以后看。
這些主要包括:Dataframe、Series(pandas), array(numpy), list, tensor(torch)
二、定義
2.1 Dataframe和Series
這里簡單介紹一下這兩個結構。Dataframe創建的方式有很多種,這里不贅述了。以下舉個例子,因為我們這里要講的是和array等的轉換,這里全都用數字型的元素。
對于dataframe來說,我們打印出來,結構類似于一個二維矩陣格式,只是每一列和每一個行都有個index,這并且這些結構之間有很多方便的操作,在讀入結構化數據的時候尤為方便,所以平時做偏結構化數據的時候, 比如excel、pickle等等,pandas的使用是繞不開的。
而其中的series相當于dataframe的一個元素,如下。
Series只有row index,有點類似于一個一維向量。
而DataFrame既有行索引也有列索引,它也可以被看做由Series組成的字典(共同用一個索引
2.2 array
數組結構是由不同維度的list轉換來的,用array的原因主要在于有更多的矩陣操作,數據使用起來更方便,比如轉置、矩陣相乘、reshape等等。
2.3 tensor
張量是在深度學習框架中的一個數據結構,把數據喂進模型中需要把數據轉換為tensor結構,等我們再取出來做框架以外的操作,比如保存成文件,用plot畫圖,都需要重新轉換為array或list結構。
三、互相轉換
先用一個例子直觀舉例下
四、詳細總結
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}) 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群:總結
以上是生活随笔為你收集整理的【深度学习】array, list, tensor,Dataframe,Series之间互相转换总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首发:徐亦达团队新论文推荐(ECCV20
- 下一篇: 【机器学习基础】数学推导+纯Python