我有一个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)
也没有返回原始结构)
答案 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)