首页 > 解决方案 > numpy.array() 不将 3D 列表转换为 3D ndarray

问题描述

我正在编写一个程序,我试图将 3D python 列表转换为 3D numpy 数组。

data = [i for i in pickle.load(open("resources/pickle/infyDataset.pickle", "rb"))]
print(data) # First time

data = np.array(data, dtype=(np.ndarray))
print(data) # Second time

nsamples, nx, ny = data.shape
data = data.reshape((nsamples,nx*ny))

第一次,程序输出:
>>> [[[0, 616.95], [1, 617.95] ... [373, 609.95], [374, 611.1]]]

第二次,它输出:
>>> [list([[0, 742.8], [1, 742.05] ... [373, 745.35], [374, 745.3]])]

它应该是一个带有 shape 的 numpy 数组(261, 375, 2),但它返回一个带有 shape 的数组(261,)。我相信问题是由于将数据解释为元素数组<class 'list'>,而不是<class 'numpy.ndarray'>.

谢谢您的帮助!

标签: pythonnumpymultidimensional-arraynumpy-ndarray

解决方案


推荐阅读