首页 > 解决方案 > 是否可以将 numpy 数组转换为 csv 文件,然后将其作为 numpy 数组加载回来?

问题描述

我有一个图像数据集。我已经成功地遍历了我的目录和子目录以将图像存储到 numpy 数组中。

我使用了以下语句:

Image_array = np.array(Image_array)

我的数组大小是:100x224x224

这工作正常,图像得到正确存储。但是,我现在正尝试将这个 numpy 数组保存到 CSV 文件中。我已经展平了 numpy 数组并将其保存在 array.csv 文件中,如下所示:

array = array.flatten('F')
np.savetxt('array.csv', array, delimiter=',', fmt='%d')

上面的代码只创建了 1 个 CSV 文件,其中一列包含像素值。

然后我尝试将 CSV 数据读回一个 numpy 数组,但加载时数据严重混乱,因为图像只是模糊了。该数组还显示为“。” 在它之前没有做的每个数字之后。

filename = "array.csv"
data = np.loadtxt(filename, delimiter=',')
new= np.array((data).reshape(100,224,224),order='F')

我错过了什么吗?请协助?

标签: pythonnumpycsvreshape

解决方案


然后我尝试将 csv 数据读回 numpy 数组,但数据严重混乱

不要使用order参数或始终使用它。您首先将其展平,F但在重新整形时未指定 order 参数,默认为C. 我认为您尝试这样做,但order参数放置在错误的函数中,它应该在里面reshape

该数组还显示为“。” 在它之前没有做的每个数字之后。

读取与dtype先前矩阵相同的数据,例如data = np.loadtxt(filename, delimiter=',', dype=int). 既然你没有给出一个dtype它被转换为float我认为。


推荐阅读