在Python中将列表添加到数组列表的末尾

时间:2018-08-08 15:16:19

标签: python numpy insert

我想在列表数组的末尾添加元素列表。我试图使用np.insert这样的功能:

dataForModel=np.insert(dataForModel, -1, output_recoded, axis=1)

其中dataForModel是数组列表,sampling_times是一维列表,其长度与len(dataForModel)相同。所以我想要的是将output_recoded的一个(对应)元素放在dataForModel所包含的每个数组的末尾

问题是,它会将output_recoded放在基本dataForModel的最后一列之前,但我希望它放在之后。

例如,如果我的数据是dataForModel=[array([2,15,-3,4]), array([12,1,3,42]),array([6,8,21,-5])],而output_recoded是[101,47,82],我想拥有[array([2,15,-3,4,101]), array([12,1,3,42,47]),array([6,8,21,-5,82])]

感谢帮助

2 个答案:

答案 0 :(得分:3)

尝试一下:

dataForModel=np.insert(dataForModel, dataForModel.size, sampling_times, axis=1)

示例:

>>> a = np.array([2, 56, 4, 8, 564])
>>> np.insert(a, -1, [1,2,3])
array([  2,  56,   4,   8,   1,   2,   3, 564])
>>> np.insert(a, a.size, [1,2,3])
array([  2,  56,   4,   8, 564,   1,   2,   3])

更新:

>>> dataForModel=[np.array([2,15,-3,4]), np.array([12,1,3,42]),np.array([6,8,21,-5])]
>>> dataForModel=np.array(dataForModel)
>>> dataForModel
array([[ 2, 15, -3,  4],
       [12,  1,  3, 42],
       [ 6,  8, 21, -5]])
>>> output_recoded= [101,47,82]
>>> dataForModel=np.insert(dataForModel, dataForModel.shape[1], output_recoded, axis=1)
>>> dataForModel
array([[  2,  15,  -3,   4, 101],
       [ 12,   1,   3,  42,  47],
       [  6,   8,  21,  -5,  82]])

如果您要添加结尾列,请记住添加的数据需要与(dataForModel.shape[1],1)维的大小匹配

答案 1 :(得分:0)

我的第一个选择是for循环,尽管可能有更有效的方法:

for i in range(len(dataForModel)):

    dataForModel[i] = [*dataForModel[i], sampling_times[i]]

*会将当前数组解压缩到一个新列表中,尽管您也可以append