如何正确更改numpy数组的dtype

时间:2019-03-02 21:25:30

标签: python arrays pandas numpy

我有一个从pandas数据帧获得的numpy数组

data_array = df['column_name'].to_numpy()

结果数组与原始列一样具有dtype对象,并且由形状为(2000,)的整数值列表组成。我希望它是int32类型的。但是,当我尝试使用

data_array = data_array.astype(np.int32)

我得到例外

setting an array element with a sequence.

数组中的所有元素都是具有相同整数(一百个左右)的列表。

一般格式为:

[[1,0,1,0],[0,0,0,0],[1,0,0,1]]

我明显缺少什么吗?还是有另一种更好的方法将熊猫数据帧转换为所需类型的numpy数组?

因为在我看来我已经用完了所有选项。

编辑

我想出了办法,尽管这种方法有些古怪。

data_array = np.array(df['column_name'].to_list(), np.int32)

我仍然不确定为什么需要它。但是显然,可以将二维整数列表转换为具有正确dtype的numpy数组,并使用一个numpy数组列表而不是二维列表。

0 个答案:

没有答案