【问题标题】:Reshape DataFrame to np.array将 DataFrame 重塑为 np.array
【发布时间】:2020-08-31 23:37:33
【问题描述】:

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


array ([244.1462534,212.68483386, 212.04058487, 236.39615555]

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


[244.1462534,
244.1462534,
244.1462534,
244.1462534]

因为有很多,所以很难像这样看到它

【问题讨论】:

  • 你可以试试 a.shape 吗?
  • 你的结果已经是一维数组了
  • 也许你可以用这个答案在一行中打印它stackoverflow.com/a/44140147/9346979
  • values 来自完整的 dataframe 是 2d,例如 (963,1)。但是一列是Series,它是 1d。因此,您可以重塑数组,也可以先选择列。

标签: python pandas numpy dataframe


【解决方案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]])

一列是一个Series,即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 文档中找到。

【讨论】:

    【解决方案2】:

    使用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]
    

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多