将嵌套的numpy数组合并为2D数组

2024-04-20 04:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用熊猫生成一些信息和功能。我将使用该数据库作为我对sklearn的输入。目前,我正在使用.as_matrix()将数据帧转换为数组。输出如下:

array([[0.4437294900417328, 0.13434134423732758, 0.474, 0.482,
    array([0, 0, 0, 0, 0, 0, 1, 0, 0, 0])],
   [0.09896088391542435, 0.10105254501104355, 0.474, 0.526,
    array([0, 0, 0, 0, 0, 1, 0, 0, 0, 0])],
   [0.026971107348799706, 0.08766224980354309, 0.474, 0.581,
    array([0, 0, 0, 0, 0, 0, 1, 0, 0, 0])],
   ..., 

我想把这个内部数组分解成父2D数组。结果应该是这样的。在

^{pr2}$

TIA公司


Tags: 数据功能信息数据库as公司数组sklearn
1条回答
网友
1楼 · 发布于 2024-04-20 04:58:04

正如我所说,你的数组的确切结构还不清楚。我确定外部数据类型是object。熊猫经常用它来保存混合数据。

下面是一个猜测和可能的解决方案:

制作一个对象数组,并用一些浮点数和整数数组填充它:

In [38]: A=np.empty((3,5),dtype=object)
In [39]: A[:,:4]=np.arange(12.).reshape(3,4)/10
In [40]: A[0,-1]=np.arange(5)
In [41]: A[1,-1]=np.arange(1,6)
In [42]: A[2,-1]=np.arange(2,7)
In [43]: A
Out[43]: 
array([[0.0, 0.1, 0.2, 0.3, array([0, 1, 2, 3, 4])],
       [0.4, 0.5, 0.6, 0.7, array([1, 2, 3, 4, 5])],
       [0.8, 0.9, 1.0, 1.1, array([2, 3, 4, 5, 6])]], dtype=object)

印刷品也差不多。reshapeconcatenateravel等不连接浮点数和数组。

相反,让我们创建一个数组来保存期望值,并将它们复制到其中:

^{pr2}$

复制浮动列很容易。但是,将数组重写为可以作为块复制的内容,需要连接。vstack形式似乎起了作用:

In [46]: B[:,4:]=np.vstack(A[:,-1])
In [47]: B
Out[47]: 
array([[ 0. ,  0.1,  0.2,  0.3,  0. ,  1. ,  2. ,  3. ,  4. ],
       [ 0.4,  0.5,  0.6,  0.7,  1. ,  2. ,  3. ,  4. ,  5. ],
       [ 0.8,  0.9,  1. ,  1.1,  2. ,  3. ,  4. ,  5. ,  6. ]])

我不得不根据我对数组显示的了解,重新创建你的数组,包括对象类型。然后我只好四处玩玩,尝试各种不同的方式来加入价值观。所以有很多尝试和错误。

相关问题 更多 >