比如说我有一个list:
我想把它存成npy文件,就像下图所示:
我应该怎么做呢?
import numpy as np
data = [[1,2],[2,3,4],[4]]
arrays = [np.array(sublist) for sublist in data]
np.save('arrays.npy', arrays)
import numpy as np
data = [[1,2],[2,3,4],[4]]
arrays = [np.array(sublist) for sublist in data]
np.save('arrays.npy', arrays)
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
可以使用numpy库中的vstack函数将list转化为numpy数组,再使用numpy库中的save函数将numpy数组保存为npy文件。代码如下:
import numpy as np
my_list = [ [1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11, 12] ]
# 将list转换为numpy数组
arr = np.vstack(my_list)
# 将numpy数组保存为npy文件
np.save('my_file.npy', arr)
解释:
首先导入numpy库。然后声明一个list变量my_list,里面包含三个子list,每个子list的成员数量不一致。接着使用numpy库中的vstack函数将my_list转化为numpy数组arr,vstack函数会将各个子list纵向堆叠在一起,使得arr的形状为(12,)。最后使用numpy库中的save函数将数组arr保存为npy文件,文件名为my_file.npy。
实际上,numpy库中的save函数也可以直接将list保存为npy文件,但是需要使用allow_pickle参数,并且限制非常严格,因此建议先将list转换为numpy数组再进行保存。