繁体   English   中英

检索矩阵对角线时,“ numpy.ndarray”对象不可调用。

[英]'numpy.ndarray' object is not callable when retrieving matrix diagonal.

我有一个291 * 291矩阵,我只想自动检索值(0,1),(1,2),(2,3)....(n-1,n)。 是否有使用循环或函数的简单方法?

矩阵是数据库中文本之间的余弦相似度:

bodies = [d['body'] for d in data]
tfidf = vectorizer.fit_transform(bodies)

matrix =(tfidf * tfidf.T).A

由于我想创建一个向量,因此我尝试这样做:

vector = []
for i in range(len(data) -1):
    vector.append(matrix(i, i+1))

但是我收到以下错误:

TypeError: 'numpy.ndarray' object is not callable

关于如何解决的任何想法?

由于矩阵是正方形,因此可以使用numpy.diagonal (偏移量为1)来获取所需的值

mat.diagonal(offset = 1)

正偏移量1获取矩阵主对角线上方的对角线1。


迷你演示

mat = numpy.ones((3,3))
mat[0,1] = 2
mat[1,2] = 3
print(mat.diagonal(offset = 1))

输出:

[ 2.  3.]

矩阵下标使用方括号,而不是圆括号。 您需要matrix[i, i+1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM