python - 如何在 Python 中找到两个矩阵之间的差异,结果不应该有任何带负号的值

标签 python python-3.x pandas numpy matrix

我有一个包含两列(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/

相关文章:

python - Pandas 列加法/减法

python - 创建anaconda python环境出错

用于创建和显示所有字母组合的 Python 程序,从字典中的不同键中选择每个字母

python - 将 CSV 文件转换为 xlsx 文件 Python

python - python中有大于小于函数吗?

python - 删除 pandas 中的所有行,直到找到特定字符串,然后停止删除

python - 在 C++ 中运行经过训练的 keras 模型

python - 基于记录数据的SqlAlchemy模型关联

python - 通过在 PyCharm 2016.3.2 中运行的 Python 3.6 脚本打开 UTF-8 编码的文件

python - IPython 笔记本中的 "Zebra Tables"?