我有一个 pandas 系列,每个条目包含一个 numpy 数组(所有条目的长度相同),我想将其转换为 2D numpy 数组。我相信我已经读过 Series 和 DataFrames 在容纳容器时表现不佳,但长话短说,不幸的是,这就是您通过调用 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 没有自动将最终数据结构解析为二维数组)。
如何从这个数据结构中“展平”这个二维数组? (注意:result.flatten() 不成功,np.array(result) 也不成功,两者都返回原始结构)
请您参考如下方法:
使用 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]])
