当前位置: 首页 > 知识库问答 >
问题:

如何将熊猫数据帧转换为NumPy数组[重复]

闻人业
2023-03-14

如何将pandas数据帧(21 x 31)转换为numpy数组?

例如:

数组_1(n_1,n_2,n_3,…,n31)
数组_2(n_1,n_2,n_3,…,n31)

数组21(n_1,n_2,n_3,…,n31)

我尝试了以下代码段:

np.array(df)

.. 并得到如下结果:

array([[0.00290135, 0.00274017, 0.00531915, 0.00967118, 0.00676983,
        0.0082205 , 0.01096067, 0.01821406, 0.01450677, 0.02401676,
        0.0235332 , 0.03787879, 0.04239201, 0.04190845, 0.04819471,
        0.04932302, 0.06399097, 0.07865893, 0.06995487, 0.06914894,
        0.08107672, 0.06141199, 0.05157963, 0.05141844, 0.03852353,
        0.03546099, 0.02611219, 0.01595745, 0.00435203, 0.00322373,
        0.00257898],
       [0.        , 0.00392927, 0.00638507, 0.01866405, 0.00785855,
        0.01915521, 0.00491159, 0.02308448, 0.01178782, 0.01915521,
        0.03339882, 0.02996071, 0.03192534, 0.05451866, 0.03732809,
        0.04125737, 0.05304519, 0.05599214, 0.0589391 , 0.09528487,
        0.13752456, 0.05108055, 0.02603143, 0.05500982, 0.02799607,
        0.01424361, 0.05157171, 0.02799607, 0.        , 0.00049116,
        0.00147348],
       [0.        , 0.        , 0.01376462, 0.        , 0.00825877,
        0.01238816, 0.00757054, 0.00275292, 0.01307639, 0.01927047,
        0.03234687, 0.04129387, 0.02959394, 0.02615279, 0.05161734,
        0.03991741, 0.05574673, 0.12801101, 0.04335857, 0.07983482,
        0.05918789, 0.12319339, 0.02546456, 0.08878183, 0.01169993,
        0.04542326, 0.02064694, 0.01789401, 0.        , 0.00275292,
        0.        ],
       [...]])

问题是第二个方括号太多了。我该如何解决这个问题?

共有2个答案

谷梁宁
2023-03-14
np = df.values

Dataframe包含属性值。此属性实际上以NumPy数组的形式保存数据。

将n维Numpy数组转换为1D Numpy数组。

data = df.values 

# method 1 
raval = data.ravel() 

#method 2 
shape = data.shape 
1d_data = data.reshape(1,shape[0]*shape[1])
冯俊英
2023-03-14

似乎您希望将数据帧转换为1D数组(这在文章中应该很清楚)。

首先,使用DataFrame.to_numpy(不鼓励使用DataFrame.values)将DataFrame转换为2D Numpy数组,然后使用ndarray.ravelndarray.flatten来展平数组。

arr = df.to_numpy().ravel()
 类似资料:
  • 我使用熊猫数据框来清理和处理数据。但是,我需要将其转换为numpy ndarray,以便使用利用矩阵乘法。我将数据框转换为具有以下内容的列表列表: 这将返回以下结构: 然后我将其转换为如下所示的numpy数组: 然而,以下打印: 给出这个结果: 但是,我需要它们都是numpy数组。如果它不是来自熊猫数据帧,我只是转换一个硬编码列表,那么它们都是Ndarray。当列表是从数据帧生成的时,如何获取该列

  • 我有这个数据框 我想转换这种形式的Numpy数组: 我正在使用转换为_矩阵函数,并在它重塑(1,4)后使用,但它不起作用!!它给我的格式是:有什么建议吗?我需要把它转换成那种格式,这样我就可以应用“精确回忆曲线”功能。

  • 我不熟悉熊猫和蟒蛇。我的输入数据如下 这里Y是panda系列对象,我想将其转换为numpy数组。所以我试过了,就像矩阵一样 但是我得到的输出是[1,1](这是错误的,因为我只有一个列类别和两行)。我希望结果是2x1矩阵。

  • 我想知道是否有一种更简单、内存高效的方法来从熊猫数据帧中选择行和列的子集。 例如,给定此数据帧: 我只想要那些列c的值大于0.5的行,但是我只需要那些行的列b和e。 这就是我想出的方法——也许有更好的“熊猫”方法? 我的最终目标是将结果转换为numpy数组,并传递到sklearn回归算法中,因此我将使用上面的代码,如下所示: …这让我很恼火,因为我最终在内存中获得了一个巨大的数组副本。也许还有更好

  • 在Python3下,我有一个dict,格式如下: 我想使用dict键作为列将其转换为数据帧: 但是,当我尝试以下命令时,我有一个ValueError:

  • 我想读取ArcGIS形状文件的文件,并将其转储到数据帧中。我目前正在使用dbf包。 显然,我已经能够将文件作为一个表加载,但还不能理解如何解析它并将其转换为一个数据帧。怎么做? 这就是我所处的困境: Python将此语句作为输出返回,坦率地说,我不知道该如何处理: 编辑 我的原始示例: