将DataFrame重塑为np.array

时间:2020-08-31 23:37:33

标签: python pandas numpy dataframe

下午好, 我有一个尺寸为(963,1)的数据框,如何将这样的内容更改为numpy格式:


array ([244.1462534,212.68483386, 212.04058487, 236.39615555]

当我使用np.array(a)时,在我看来,每个元素都在不同的行中


[244.1462534,
244.1462534,
244.1462534,
244.1462534]

因为有很多这样的东西很难看到

2 个答案:

答案 0 :(得分:1)

制作1列框架:

In [590]: df = pd.DataFrame(np.arange(5), columns=['x'])                                             
In [591]: df                                                                                         
Out[591]: 
   x
0  0
1  1
2  2
3  3
4  4

从此开始的数组的形状为(5,1):

In [592]: df.values                                                                                  
Out[592]: 
array([[0],
       [1],
       [2],
       [3],
       [4]])

一列是系列,即1d:

In [594]: df['x']                                                                                    
Out[594]: 
0    0
1    1
2    2
3    3
4    4
Name: x, dtype: int64
In [595]: df['x'].values                                                                             
Out[595]: array([0, 1, 2, 3, 4])

但是,如果您拥有(5,1)形状数组,则有许多方法可以对其进行重塑:

In [596]: df.values.ravel()                                                                          
Out[596]: array([0, 1, 2, 3, 4])

ravelflattenreshapesqueeze,甚至索引。所有这些都可以在基本的numpy文档中找到。

答案 1 :(得分:0)

使用values将数据帧转换为Numpy数组。检查Docs.

df.values

如果需要扁平化的np数组,可以重塑形状

df = pd.DataFrame(np.random.randn(10))
print (df.shape)
print (df.values.reshape(-1))

输出:

(10, 1)
[-1.43902815  0.72724325 -0.36741276 -1.96696158  0.5852711  -2.03214297
  0.11657485 -1.77276773  0.33315229 -1.37454383]
相关问题