擅长:python、mysql、java
<p>下面是一个不使用pandas的解决方案,它输出(8,2)numpy矩阵:</p>
<pre><code>val = [10,23,45,31,78,43,1,67,82]
indx = [1,4,5,8]
indx2 = [3,6,7]
indx3 = [0,2]
indices = [indx, indx2, indx3]
def get_group(x):
for i,indx_arr in enumerate(indices):
if x in indx_arr:
return i
pairs = [(v,get_group(i)) for i,v in enumerate(val)]
np.asarray(pairs)
array([[10, 2],
[23, 0],
[45, 2],
[31, 1],
[78, 0],
[43, 0],
[ 1, 1],
[67, 1],
[82, 0]])
</code></pre>