如何在python中把对象数组转换为普通数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中把对象数组转换为普通数组?相关的知识,希望对你有一定的参考价值。

我有一个对象数组,它的样子是这样的

array([array([[2.4567]],dtype=object), array([[3.4567]],dtype=object), array([[4.4567]],dtype=object), array([[5.4567]],dtype=object) ... array([[6.4567]],dtype=object))

这只是一个例子,实际的要大得多。

那么,我如何将其转换为一个正常的浮动值numpy数组。

答案

使用 numpy.concatenate:

>>> arr = array([array([[2.4567]],dtype=object),array([[3.4567]],dtype=object),array([[4.4567]],dtype=object),array([[5.4567]],dtype=object),array([[6.4567]], dtype=object)])
>>> np.concatenate(arr).astype(None)
array([[ 2.4567],
       [ 3.4567],
       [ 4.4567],
       [ 5.4567],
       [ 6.4567]])
另一答案

你可以使用np.stack,也适用于多维的情况。

import numpy as np
from numpy import array

arr = array([array([[2.4567]],dtype=object),array([[3.4567]],dtype=object),array([[4.4567]],dtype=object),array([[5.4567]],dtype=object),array([[6.4567]],
dtype=object)])
np.stack(arr).astype(None)
array([[[2.4567]],
       [[3.4567]],
       [[4.4567]],
       [[5.4567]],
       [[6.4567]]])
另一答案

或者,使用 reshape:

In [1]: a = array([array([[2.4567]],dtype=object), array([[3.4567]],dtype=object), array([[4.4567]],dtype=object)])
In [2]: a.astype(float).reshape(a.size,1)
Out[2]:
array([[ 2.4567],
       [ 3.4567],
       [ 4.4567]])

以上是关于如何在python中把对象数组转换为普通数组?的主要内容,如果未能解决你的问题,请参考以下文章

java中把json怎么转换成数组?

如何在android中把JSON对象转换为string

如何将普通的 JS 数组转换为 JSON 对象

TP5 JSON对象数组转换为普通数组

matlab中把字符串转换成数组

java中把String类型数组转换成int型数组怎么做?