我想在列表数组的末尾添加元素列表。我试图使用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])]
感谢帮助
答案 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