繁体   English   中英

Pandas to_numpy() 生成列表数组。 如何从中获得 2D numpy 阵列?

[英]Pandas to_numpy() results in an array of lists. How do I get a 2D numpy array from this?

我有一列列表,每个列表包含相同数量的值。

如果我做

df['column'].to_numpy()

我得到一个列表数组:

array([list([0, 4688, 11, 43486, 40508, 13, 5,...
       list([0, 40928, 17707, 22705, 9, 38312, 2..
       list([0, 6766, 368, 3551, 28837,..
      dtype=object)

我如何获得二维数组?

你可以这样做:

np.array(df['column'].tolist())

或者您可以简单地堆叠它们:

np.stack(df['column'].to_numpy())

这会将您的列表堆叠在一起,并且 output 是一个二维数组。 您必须确保列表的长度相同。 Numpy arrays 是矩形的。

您可以使用列表list comprehension

>>> df
                 A
0  [0, 1, 2, 3, 4]
1  [0, 1, 2, 3, 4]
2  [0, 1, 2, 3, 4]

>>> np.array([x for x in df['A']])
array([[0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4]])
data=np.array(df['column']).reshape(2,2)
  • 它将您的愿望列转换为数组

对于二维数组,您可以在 numpy 上使用 reshape function 但是您应该在数据中具有适当的值来进行校正,例如,如果您有 4 个数据表示(行、列),则使用 (2,2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM