擅长:python、mysql、java
<p>你可以用熊猫和numpy有效地做到这一点:</p>
<pre><code>import pandas as pd
d = {
'itemA': {
'itemB': 0.85,
'itemC': 0.12
},
'itemB': {
'itemA': 0.68,
'itemC': 0.24
},
'itemC': {
'itemA': 0.28
}
}
df = pd.DataFrame(d)
# since this is a matrix of co-occurrences of a set of objects,
# sort columns and rows alphabetically
df = df.sort_index(axis=0)
df = df.sort_index(axis=1)
# the matrix is now the values of the dataframe
a = df.values.T
# if needed, fill the diagonal with 1 and replace NaN with 0
import numpy as np
np.fill_diagonal(a, 1)
a[np.isnan(a)] = 0
</code></pre>
<p>矩阵现在是:</p>
<pre><code>array([[1. , 0.85, 0.12],
[0.68, 1. , 0.24],
[0.28, 0. , 1. ]])
</code></pre>
<p>要可视化此矩阵:</p>
<pre><code>import matplotlib.pyplot as plt
plt.matshow(a)
plt.show()
</code></pre>
<p>行和列ID将显示为标签。你知道吗</p>