可能标题说的不太明白
代码从文件读取数据,然后转为 3d array ,之后 append 到一个 list ,但是每个 array 的 shape 不一定相同,这样无法直接转为 numpy.array. 比如有的是(1, 2, 3),但有的就是(1, 2, 5),我想把每个 array 都转成最长的(1, 2, 5),多余部分填 0
我现在用的代码是:
max_len = np.max([item.shape[2] for item in old_array])
new_array = np.zeros((len(old_array), 1, 2, max_len))
for index, data in enumerate(old_array):
new_array[index][:, :, :data.shape[2]] = data
有更好的实现方式吗?
1
ipwx 2017-02-18 15:07:10 +08:00 1
我觉得你这已经是最好的方法了……
如果你事先知道 maxlen 的话,你可以用 numpy.pad 处理每一条记录。 |