如何在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数组。
答案
>>> 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中把对象数组转换为普通数组?的主要内容,如果未能解决你的问题,请参考以下文章