基于从此链接提取的数据集:大脑和宇宙网络样本,我正在尝试进行一些复杂网络分析。
\n论文《神经元网络与宇宙网的定量比较》声称使用了该数据集及其相邻矩阵
\n" Mij,即行/列等于检测到的节点数的矩阵,Mij如果节点之间的距离为\xe2\x89\xa4 llink,则值为 1,Mij = 0否则"。
然后我探究了矩阵,如下所示:
\nfrom astropy.io import fits\n\nwith fits.open(\'mind_dataset/matrix_CEREBELLUM_large.fits\') as data:\n matrix_cerebellum = pd.DataFrame(data[0].data)\nRun Code Online (Sandbox Code Playgroud)\n它不打印稀疏矩阵,而是打印与节点的距离以像素表示的矩阵。
\n我了解到1像素和比例之间的对应关系是:
\nneuronal_web_pixel = 0.32 # micrometers\nRun Code Online (Sandbox Code Playgroud)\n并提出了一种将像素转换为微米的方法:
\ndef pixels_to_scale(df, mind=False, cosmos=False):\n \n one_pixel_equals_parsec = cosmic_web_pixel\n one_pixel_equals_micron = neuronal_web_pixel\n \n if mind:\n df = df/one_pixel_equals_micron\n \n if cosmos:\n df = df/one_pixel_equals_parsec\n \n return df\nRun Code Online (Sandbox Code Playgroud)\n然后,另一种方法对转换后的矩阵进行二值化:
\ndef …Run Code Online (Sandbox Code Playgroud) python cluster-analysis adjacency-matrix pandas node-centrality
我正在使用MATLAB.我有非常大的 稀疏矩阵,我想执行logical或bsxfun在这个矩阵中的每一列.有一个for循环,其中有一个logical填充稀疏矩阵的操作.在这里,我包含一个带有一些虚假小数据的示例函数,以查看我正在尝试做什么;
function maskMat()
graph_temp = round(rand(10,10));
tic;
com_mat = round(rand(10,10));
com = round(rand(10,1));
for ii=1:length(graph_temp)
com_mat(:,ii) = logical(com ~= com(ii));
%bsxfun works too but is slightly slower
%com_mat(:,ii) = bsxfun(@ne,com,com(ii));
end
toc;
com_mat = graph_temp .* com_mat;
graph_temp并且com_mat大约有1M行和列,并且代码对for循环来说非常慢.关于SO还有另一个相关的问题,但我还没有理解它背后的理论,看看我是否也可以将这些解决方案应用于这个问题.
我想要编写一个mexc ++函数或尝试获得某种嵌套,arrayfun以便每个logical/ bsxfun操作被调用为更大函数的子例程,以避免for循环瓶颈.
我有这个互信息矩阵:
X1053_at X117_at X121_at X1255_g_at X1294_at X1316_at X1320_at X1053_at 0 0.00040833 0.052000448 0.101470422 0.00040833 0.223143551 X117_at 0.00040833 0 0.00040833 0.174561677 0.174561677 0.034204976 X121_at 0.052000448 0.00040833 0 0.020410997 0.010309644 0.034204976 X1255_g_at 0.101470422 0.174561677 0.020410997 0 0.020410997 0.174561677 X1294_at 0.00040833 0.174561677 0.010309644 0.020410997 0 0.101470422 X1316_at 0.223143551 0.034204976 0.034204976 0.174561677 0.101470422 0 X1320_at 0.074226329 0.134540323 0.052000448 0.00368703 0.020410997 0.101470422
然后我想在R中制作一个基因列表标签,用于分隔矩阵,例如:
geneX geneY weight geneX geneY weight geneX geneY weight geneX geneY weight geneX geneY weight geneX geneY weight
有谁可以帮我这个?实际上我想导出这个矩阵然后通过cytoscape或gephi导入或者...谢谢
我有1d锦标赛队伍和2d"对手矩阵".
我只想提取每个队伍的对手名单.
我只是在学习Haskell并想知道,如果有人能想到下面已经运行的代码更优雅的解决方案.......也许列表理解?...
码:
findOp :: (Eq a, Num a) => [b] -> [a] -> [b]
findOp (x:xs) (y:ys) | y == 1 = [x] ++ findOp xs ys
| otherwise = findOp xs ys
findOp [] [] = []
tab = [[0,1,0,1],
[1,0,1,0],
[0,1,0,1],
[1,0,1,0]]
teams = ["team a",
"team b",
"team c",
"team d" ]
main :: IO ()
main = do
let games = map (\x -> (fst x, findOp teams $ snd x)) $ zip teams …Run Code Online (Sandbox Code Playgroud) 我正在研究C++中的图形实现,并且遇到了一个对我来说很有意义的邻接矩阵的实现.该实现使用"init"函数初始化矩阵:
void init(int n) {
numVertex = 0;
numEdge = 0;
mark = new int[n]; //initialize mark array
for (int i = 0; i < numVertex; i++) {
mark[i] = 0;
}
matrix = (int**) new int*[numVertex]; //make matrix
for (int i = 0; i < numVertex; i++) {
matrix[i] = new int[numVertex];
}
for (int i = 0; i < numVertex; i++) { //mark all matrix cells as false
for (int j = 0; j < numVertex; j++) { …Run Code Online (Sandbox Code Playgroud) 我有一个邻接矩阵,例如:
[[ 0., 15., 0., 7., 10., 0.],
[ 15., 0., 9., 11., 0., 9.],
[ 0., 9., 0., 0., 12., 7.],
[ 7., 11., 0., 0., 8., 14.],
[ 10., 0., 12., 8., 0., 8.],
[ 0., 9., 7., 14., 8., 0.]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能将它转换为像下面这样的邻接列表?
graph = {'1': [{'2':'15'}, {'4':'7'}, {'5':'10'}],
'2': [{'3':'9'}, {'4':'11'}, {'6':'9'}],
'3': [{'5':'12'}, {'6':'7'}],
'4': [{'5':'8'}, {'6':'14'}],
'5': [{'6':'8'}]}
Run Code Online (Sandbox Code Playgroud)
?