我有一个包含两列(Word 和 Word_Position)的 Panda Dataframe。我需要找到单词之间的距离并以矩阵形式呈现输出以提高可读性。
到目前为止,我所做的是从 DF.Word_Position 列创建了一个行矩阵,并将其转置以创建一个列矩阵。当我减去这两个矩阵时,我得到的值很少,前面有减号。
出于对伟大数学的尊重,这是绝对正确的,但根据我的要求,我只需要数字而不是减号。
有没有其他更好的方法来做同样的事情?感谢您的帮助。提前致谢。
注意:我使用的是 Python 3.6
代码片段及其相应的输出供您引用
m1 = np.matrix(df1['Word Position'])
print(m1)
[[ 1 2 3 ..., 19 20 21]]
m2 = np.matrix(m1.T)
print(m2)
[[ 1]
[ 2]
[ 3]
...,
[19]
[20]
[21]]
print(m2-m1)
[[ 0 -1 -2 ..., -18 -19 -20]
[ 1 0 -1 ..., -17 -18 -19]
[ 2 1 0 ..., -16 -17 -18]
...,
[ 18 17 16 ..., 0 -1 -2]
[ 19 18 17 ..., 1 0 -1]
[ 20 19 18 ..., 2 1 0]]
最佳答案
只取绝对值?
np.abs(m2 - m1)
您的代码表明您的数据由 numpy 数组组成,因此上面的解决方案应该有效。
如果它们是数据框,你可以这样做:
m2.sub(m1).abs()
关于python - 如何在 Python 中找到两个矩阵之间的差异,结果不应该有任何带负号的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583472/