Python 为列表的不同部分指定标签
我有以下清单:Python 为列表的不同部分指定标签,python,list,numpy,concatenation,Python,List,Numpy,Concatenation,我有以下清单: a = numpy.array([1,2,3,4,5,6]) 我只需将值1,2,3一起分配到标签0,以及4,5,6标签1 我想到的第一件事是,但我不知道如何在我的案例中使用它 有什么想法吗 谢谢。您可以先将numpy数组转换为列表,然后收集索引和子网站,然后将它们添加到字典中: >>> import numpy as np >>> a = np.array([1,2,3,4,5,6]).to_list() >>> a [1,
a = numpy.array([1,2,3,4,5,6])
我只需将值1,2,3
一起分配到标签0
,以及4,5,6
标签1
我想到的第一件事是,但我不知道如何在我的案例中使用它
有什么想法吗
谢谢。您可以先将numpy数组转换为列表,然后收集索引和子网站,然后将它们添加到字典中:
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6]).to_list()
>>> a
[1, 2, 3, 4, 5, 6]
>>> ind = [0, 1]
>>> sublists = [a[i:i+3] for i in range(0, len(a), 3)]
>>> sublists
[[1, 2, 3], [4, 5, 6]]
>>> d = dict(zip(ind, sublists))
>>> d
{0: [1, 2, 3], 1: [4, 5, 6]}
>>> d[0]
[1, 2, 3]
>>> d[1]
[4, 5, 6]
听起来你在寻找这样的东西:
In [30]: a = np.array([1,2,3,4,5,6])
In [31]: labels = np.empty(len(a))
In [32]: labels[np.in1d(a, [1,2,3])] = 0
In [33]: labels[np.in1d(a, [4,5,6])] = 1
In [34]: result = np.vstack((a, labels)).T
In [35]: result
Out[35]:
array([[ 1., 0.],
[ 2., 0.],
[ 3., 0.],
[ 4., 1.],
[ 5., 1.],
[ 6., 1.]])
您是否希望使用如下命令:
{0:[1,2,3],1:[4,5,6]}
?