Python 将pandas系列对象(Dataframe列)转换为numpy数组的适当方式是什么?

Python 将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) <

基本上我有一个数据帧:

如图所示,它有两列(Age、ImageData((200200,3)float32中图像像素的3D数组))让我们假设数据帧的名称是data

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
  • 有谁能向我解释一下,我最近开始学习python,如果有人能指出我的错误,那将对我继续学习非常有帮助。抱歉,如果一些术语或解释不清楚。我试图在这个平台上查看它,有许多与我类似或相同的问题,但我找不到一点细节,因此任何相关的参考都会有所帮助,因为数据帧和系列(单列)都有一个
    属性或
    到numpy
    方法。这些都应该记录在案。如果序列包含数组(object-dtype),那么该数组也将是带有数组元素的object-dtype
    np.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