如何将不同大小的Numpy数组列表保存到磁盘?

时间:2018-12-30 21:22:17

标签: python python-3.x numpy save load

例如,我有不同长度的numpy数组

a = [1,2,3,4]
b = [5,6]
c = [7,7,7]
d = [12,24,43,54,66,77,88]

它们被包装在一个列表(或字典)中

the_list = [a,b,c,d]

每个数组长约500个元素,列表长约1000-10000个数组。

我要将此列表保存到磁盘上的单个文件,并按重要性顺序满足以下要求:

  1. 运行时读取
  2. 人类可读文件格式
  3. 写入时运行

像这样使用熊猫:

df = pd.DataFrame(the_list)
df.to_csv(path, header=None, index=False)

仅写入每个数组的第一个元素。 我猜测有一种更好的(工作)方式,可以用熊猫,泡菜或其他方式

2 个答案:

答案 0 :(得分:0)

我可能会选择numpy.savez。这不是一种人类可读的格式,因此也许对您不起作用,但是它确实很容易使用(您使用numpy.load来读取文件)。

如果让人类易于理解的确非常重要,那么我将使用json-这是一种语言不可知的交换格式,已广为人知并广泛使用(可能是由于它在Web开发中很流行)。您可以使用json模块中的内置功能编写自己的编码器/解码器(这确实很容易),也可以让类似json-tricks的东西为您工作。

答案 1 :(得分:0)

这在我的电脑中有效:

the_list = [a,b,c,d]
df_list = pd.DataFrame({ i:pd.Series(value) for i, value in enumerate(the_list) })
df_list.to_csv('./df_list.csv')

the csv file