擅长:python、mysql、java
<p>这是<code>np.unique</code>的作业。不清楚数据的格式,但需要得到两个一维数组,一个有键,另一个有值,例如:</p>
<pre><code>kvp = np.array([['A', 'aa'], ['A', 'bb'], ['A', 'cc'],
['B', 'bb'], ['C', 'aa']])
keys, values = kvp.T
rows, row_idx = np.unique(keys, return_inverse=True)
cols, col_idx = np.unique(values, return_inverse=True)
out = np.zeros((len(rows), len(cols)), dtype=np.int)
out[row_idx, col_idx] += 1
>>> out
array([[1, 1, 1],
[0, 1, 0],
[1, 0, 0]])
>>> rows
array(['A', 'B', 'C'],
dtype='|S2')
>>> cols
array(['aa', 'bb', 'cc'],
dtype='|S2')
</code></pre>
<p>如果没有重复的键值对,这个代码就可以正常工作。如果有重复,我建议滥用scipy的稀疏模块:</p>
^{pr2}$