我正在编写一个程序,试图将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]])]
它应该是形状为(261, 375, 2)
的numpy数组,但是它返回的形状为(261,)
的数组。我认为问题是由于以下事实造成的:将数据解释为<class 'list'>
而不是<class 'numpy.ndarray'>
的元素数组。
感谢您的帮助!