[英]'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.