我有以下列表:
a = numpy.array([1,2,3,4,5,6])
我需要简单地将值1,2,3
分配到标签0
和4,5,6
标签1
。
我想到的第一件事是numpy.concatenate,但在我的案例中并没有弄清楚如何使用它。
有什么想法吗?
感谢。
答案 0 :(得分:0)
您可以先将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]
答案 1 :(得分:0)
听起来你正在寻找这样的东西:
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.]])