Python 将pandas系列对象(Dataframe列)转换为numpy数组的适当方式是什么?
基本上我有一个数据帧: 如图所示,它有两列(Age、ImageData((200200,3)float32中图像像素的3D数组))让我们假设数据帧的名称是dataPython 将pandas系列对象(Dataframe列)转换为numpy数组的适当方式是什么?,python,arrays,pandas,dataframe,numpy,Python,Arrays,Pandas,Dataframe,Numpy,基本上我有一个数据帧: 如图所示,它有两列(Age、ImageData((200200,3)float32中图像像素的3D数组))让我们假设数据帧的名称是data print(type(data["ImageData"])) print(data["ImageData"].dtype) print(data["ImageData"].shape) print(data["ImageData"].ndim) <
print(type(data["ImageData"]))
print(data["ImageData"].dtype)
print(data["ImageData"].shape)
print(data["ImageData"].ndim)
<class 'pandas.core.series.Series'>
object
(1000,)
1
打印(类型(数据[“图像数据]))
打印(数据[“图像数据”].dtype)
打印(数据[“图像数据”]。形状)
打印(数据[“图像数据”].ndim)
对象
(1000,)
1.
将系列转换为numpy阵列不起作用。虽然它将类型更改为数组,但它将其视为整个数组,并将其作为1d
print(type(np.array(data["ImageData"])))
print(np.array(data["ImageData"]).dtype)
print(np.array(data["ImageData"]).shape)
print(np.array(data["ImageData"]).ndim)
<class 'numpy.ndarray'>
object
(1000,)
1
print(类型(np.array(data[“ImageData”]))
打印(np.array(data[“ImageData”]).dtype)
打印(np.array(数据[“ImageData”]).shape)
打印(np.array(data[“ImageData”]).ndim)
对象
(1000,)
1.
所以现在我想要的是将这个系列对象转换成多维数组,这样我可以得到类似的东西,但这里我使用了列表。这是我希望使系列多维化的结果。这是本文的主要目标,但不知道没有to_list()该怎么办
print(类型(np.array(data[“ImageData”].to_list()))
打印(np.array(data[“ImageData”].to_list()).dtype)
打印(np.array(data[“ImageData”].to_list()).shape)
打印(np.array(data[“ImageData”].to_list()).ndim)
浮动32
(1000, 200, 200, 3)
4.
我这里有一些问题
np.array()
转换时,序列存储为数组中的1d值属性或到numpy
方法。这些都应该记录在案。如果序列包含数组(object-dtype),那么该数组也将是带有数组元素的object-dtypenp.stack
可以从中构造数字数组。np.array(aSeries)
与aSeries.to\u numpy()
或aSeries.values
相同。结果数组实际上可能是aSeries
内部使用的数组(或视图或副本)。不管怎么说,处理过程很简单。我建议使用np.stack
,尽管np.array(..…to_list())
方法同样好(前提是组件数组都具有相同的形状)。
print(type(np.array(data["ImageData"].to_list())))
print(np.array(data["ImageData"].to_list()).dtype)
print(np.array(data["ImageData"].to_list()).shape)
print(np.array(data["ImageData"].to_list()).ndim)
<class 'numpy.ndarray'>
float32
(1000, 200, 200, 3)
4