對於在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等等。
張量是在深度學習框架中的一個數據結構,把數據餵進模型中需要把數據轉換為tensor結構,等我們再取出來做框架以外的操作,比如保存成文件,用plot畫圖,都需要重新轉換為array或list結構。
先用一個例子直觀舉例下
挑一列的index取出
Series = Dataframe['column']
4.2 Series到listlist = Series.to_list()
4.3 list 轉 arrayarray = np.array(list)
4.4 array 轉 torch.Tensortensor = torch.from_numpy(array)
4.5 torch.Tensor 轉 arrayarray = tensor.numpy()
# gpu情況下需要如下的操作
array = tensor.cpu().numpy()
4.6 torch.Tensor 轉 list# 先轉numpy,後轉list
list = tensor.numpy().tolist()
4.7 array 轉 listlist = array.tolist()
4.8 list 轉 torch.Tensortensor=torch.Tensor(list)
4.9 array或者list轉Seriesseries = pd.Series({'a': array})
series2 = pd.Series({'a': list})之後這裡的操作就多了,看你具體需求了,也可以多個series拼成一個dataframe, 如下, 其他操作不一一贅述了
df = pd.DataFrame({'aa': series, 'bb': series2})
獲取一折本站知識星球優惠券,複製連結直接打開:
https://t.zsxq.com/yFQV7am
本站qq群1003271085。
加入微信群請掃碼進群: