没有任何Numpy阵列

时间:2014-09-24 13:34:11

标签: python arrays numpy pandas

我有一个pandas系列每个条目持有一个numpy数组(所有条目的长度相同),我想将其转换为2D numpy数组。我相信我已经读过,系列和数据框架在容纳容器时表现不佳,但长话短说,不幸的是,你在系列中的每个组上调用np.histogram(.,.)[0]得到的结果就是我所知道的在(直方图的分布)之后。

无论哪种方式,我想从我的系列中检索2D numpy数组。目前,如果我my_series.values()我得到了这个:

array([array([0, 0, 0, ..., 1, 0, 0]), array([0, 0, 0, ..., 0, 0, 0]),
       array([0, 0, 0, ..., 0, 0, 0]), ..., array([0, 0, 0, ..., 0, 0, 0]),
       array([0, 0, 0, ..., 0, 0, 0]), array([0, 0, 0, ..., 0, 0, 0])], dtype=object)

this thread中的解决方案在此处无效(np.array没有自动将最终数据结构解析为2D数组。

我怎样才能"变平"这个数据结构的2D数组? (注意:result.flatten()没有做到这一点,np.array(result)也没有返回原始结构)

2 个答案:

答案 0 :(得分:5)

使用np.vstack堆叠列表/数组/任何行:

>>> A = np.empty(2, dtype=object)
>>> A[0] = array([0, 0, 0])
>>> A[1] = array([1, 2, 3])
>>> A
array([array([0, 0, 0]), array([1, 2, 3])], dtype=object)
>>> np.vstack(A)
array([[0, 0, 0],
       [1, 2, 3]])

答案 1 :(得分:3)

可能:

>>> xs
array([array([1, 2, 3]), array([4, 5, 6])], dtype=object)
>>> xs.shape
(2,)
>>> np.array(xs.tolist())  # or, np.asarray(xs.tolist())
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.array(xs.tolist()).shape
(2, 3)