简体   繁体   English

如果 B[i, j] == 1,则从 A 创建包含每列 A 行平均值的新矩阵,其中 B 是邻接矩阵

[英]Creation of new matrix from A containing the average value of A rows for each column if B[i, j] == 1 where B is an adjacency matrix

Suppose we have a matrix 

A =  1    2    3    4
     15   20   7   10 
     0    5   18   12


And an adjacency matrix 


B =   1     0     1    
      0     0     1    
      1     1     1

How can we get a new matrix containing the average value of A row for each column if B[i,j] == 1如果 B[i,j] == 1,我们如何获得一个包含 A 行每列平均值的新矩阵

Expected output matrix 
C =  0.5     3.5     10.5     8
     7.5    12.5     12.5     11
     5.33     9      9.33    8.66

To find the neighborhood if each i, I implemented the following code:为了找到每个 i 的邻域,我实现了以下代码:

for i in range(A.shape[0]):
    for j in range(A.shape[0]):
        if (B[i,j] == 1):
            print(j)```

Are you sure the second column of your expected output matrix is correct?您确定您预期的 output 矩阵的第二列是正确的吗? I feel like this might be what you are looking for:我觉得这可能是您正在寻找的:

import numpy as np

A = np.array([[1,2,3,4], [15,20,7,10], [0,5,18,12]])
B = np.array([[1,0,1], [0,0,1], [1,1,1]])

np.divide(np.dot(A.T,B), B.sum(axis=1)).T

在此处输入图像描述

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

相关问题 如果 B[i, j] == 1 其中 B 是邻接矩阵,则从 A 生成包含每列 A 行平均值的新矩阵 - Generate new matrix from A containing the average value of A rows for each column if B[i, j] == 1 where B is an adjacency matrix 我如何提取 dataframe 的所有行,其中有一个对称的 [column A = i, column B = j] 和 [column A = j, column B = i] - how can i extract all the rows of the dataframe where there is a symetrical [column A = i, column B = j ] and [column A = j, column B = i] SQL:从表中选择行,其中列的每个元素都是矩阵? - SQL: select rows from table where each element of a column is a matrix? 将矩阵 A 与矩阵 B 相加 - Appending matrix A with matrix B Select 行,其中 A 列的值以 B 列的值开始 - Select rows where value of column A starts with value of column B 确定 A 是矩阵 B 的子矩阵的索引 - Determine indexes where A is a submatrix of matrix B 从列表生成邻接矩阵,其中邻接意味着相等的元素 - Generate adjacency matrix from a list, where adjacency means equal elements 如何删除 Pandas DF 中的行,其中 A 列的值位于 B 列和 C 列匹配 - How to remove rows in Pandas DF where value from Column A is in Column B and Column C Match 如果列 a == 值,删除列 b 等于的行 - if column a == value, drop rows where column b equals Python矩阵求解{A} [x] = [B],其中x和B的部分已知 - Python Matrix solving {A}[x] = [B] where parts of x and B are known
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM