我需要使用tcrossprod从数据中创建一个邻接矩阵,但是产生的矩阵需要遵守下面我将解释的限制。请考虑以下数据:
z <- data.frame(Person = c("a","b","c","d"), Man_United = c(1,0,1,0))
z
Person Man_United
1 a 1
2 b 0
3 c 1
4 d 0
利用z用tcrossprod生成邻接矩阵。
x <- tcrossprod(table(z))
在我的代码中,我需要将矩阵的每个值除以另一个矩阵的值。我可以使用A./B,但是B中的一些元素是0。我知道,如果B(i,j) = 0,所以A(i,j)也是0,我想要0/0 =0。所以我写了一个函数div,我使用bsxfun,但是我没有0,我有NaN:
A = [1,0;1,1];
B = [1,0;1,2];
function n = div(a,b)
if(b==0)
n = 0;
else
n = a./b;
end
end
C = bsxfun(@div,A,B);
我需要从权重矩阵的值开始创建一个矩阵。在创建和迭代矩阵时,哪种结构在速度上是保持矩阵的最佳结构?我在考虑一个列表或一个numpy 2D数组,但它们在我看来都很慢。我需要的是:
numpy array
A = np.zeros((dim, dim))
for r in range(A.shape[0]):
for c in range(A.shape[0]):
if(r==c):
A.itemset(node_degree[r])
else:
A.itemset(arc_weight[r,c])
或
list
我正在读这本书,http://infolab.stanford.edu/~ullman/mmds/ch9.pdf有一个练习9.3.2a)上面写着
练习9.3.2 :在本练习中,我们将项目聚在图9.8的矩阵中。执行以下步骤。(a)将这八个项目按等级划分为四个组。应该使用以下方法进行聚类。用1代替3‘S,4’S,5‘0,用1’,2‘表示,用0代替空白。使用Jaccard距离来度量结果列向量之间的距离。对于多个元素的簇,将簇之间的距离取为元素对之间的最小距离,每个元素组之间的距离为一个。
我无法理解集群是如何完成的?如果我用1和1,2替换所有的3,4,5,剩下的是一个矩阵。
a b c d e
我有两个地质图像(说"A“和"B")导入Matlab作为矩阵与Geotiffread。一个值不同,第二个值只有0和255 s。我想要做的是,根据其他图像(或矩阵)的位置,用其他图像(或矩阵)内的值替换所有255 s。A和B的大小不同,但它们的预测是相同的。
我试过这个:
A (A== 255)= B;
输出是错误:
??? In an assignment A(:) = B, the number of elements in A and B must be the same.
否则,我也尝试使用逻辑方法:
if A== 255
A= B;
end
什么都没发
我正在尝试将一段“for”循环代码从Matlab转换到Python。在这个块中有一个语句:A[B]=C。这三个A,B和C都是矩阵。在python中,由于Matlab和Python之间索引标准的不同,我需要编写为A[B-1]=C。当B是非空的时候,这个语句在python中很好。但是,如果B为空,则该语句如下所示:
A11 = np.copy(A[:,B-1]) #Remind that B is an empty matrix, like B=np.array([0])
索引错误:用作索引的数组必须是整数(或布尔型)类型的
实际上,如果B是空的,那么对于矩阵A11,我想要的只是另一个空矩阵。当然
我正在使用sklearn,但在亲和力传播方面遇到了问题。我已经构建了一个输入矩阵,并且一直收到以下错误。
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
我跑过了
np.isnan(mat.any()) #and gets False
np.isfinite(mat.all()) #and gets True
我试着用
mat[np.isfinite(mat) == True] = 0
删除无限值,但这也不起作用。我该怎么做才能去掉矩阵中的无限值,以便可以使用
我读了floyd warshall算法1 let dist be a |V| × |V| array of minimum distances initialized to ∞ (infinity) 2 for each vertex v 3 dist[v][v] ← 0 4 for each edge (u,v) 5 dist[u][v] ← w(u,v) // the weight of the edge (u,v) 6 for k from 1 to |V| 7 for i from 1 to |V| 8 for j from 1 to |V| 9
我正在学习从邻接矩阵(如AM1)中计算路径矩阵的方法。
具有n个顶点的图G的路径矩阵是布尔n*n矩阵,其元素可定义为:
p[i][j]=1(if there is a path from i to j)
p[i][j]=0(otherwise)
我学到的步骤如下:
如果我们自己乘一个邻接矩阵A,则得到A^2(例如AM2),它的每个顶点Ai基本上表示从i到j的路径长度2的路径数。
同样地,如果我们将一个邻接矩阵乘以3次,即得到A^3(例如AM3),它的每个顶点Ai基本上表示从i到j的路径长度3的路径数。诸若此类。
现在我们定义一个矩阵X,这样:
X=AM1+AM2+AM3...AMn