最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中networkx函數(shù)的具體使用

 更新時(shí)間:2023年02月14日 14:33:57   作者:篤℃  
本文主要介紹了python中networkx函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 介紹

1.1 前言

NetworkX是復(fù)雜網(wǎng)絡(luò)研究領(lǐng)域中的常用Python包。

1.2 圖的類型(Graph Types)

允許以可哈希的object作為節(jié)點(diǎn),任何Python object作為邊屬性。

如何選擇使用哪種圖:

1

這里解釋一下什么是平行邊:連接一對(duì)頂點(diǎn)的兩條邊叫做平行邊,即,無向圖中,兩個(gè)頂點(diǎn)間有多條邊,他們叫做平行邊,打個(gè)比方,北京和上海直接可以 是公路、鐵路、飛機(jī),那么他們互為平行邊。

1.3 常用方法

創(chuàng)建一個(gè)空的圖

1)無向圖:G = nx.Graph()
2)有向圖:DG = nx.DiGraph()

將有向圖轉(zhuǎn)換為無向圖:G = nx.Graph(DG)

圖是否有向:G.is_directed() 返回布爾值

添加節(jié)點(diǎn)
1)直接添加一個(gè)節(jié)點(diǎn)(任何object都可以作為節(jié)點(diǎn),包括另一個(gè)圖)G.add_node(1)、G.add_node(DG)
2)從任何容器加點(diǎn):a list, dict, set or even the lines from a file or the nodes from another graph…;G.add_nodes_from() 或 nx.path_graph()

添加邊
1)添加一條邊 G.add_edge(u, v)
2)添加一個(gè)邊的列表 G.add_edges_from([(1, 2), (1, 3)])
3)添加一個(gè)邊的collection G.add_edges_from(H.edges)
4)如果添加的邊的點(diǎn)不存在于圖中,會(huì)自動(dòng)添上相應(yīng)節(jié)點(diǎn)而不報(bào)錯(cuò)

屬性attribute
1)圖的節(jié)點(diǎn)/邊/圖都可以在關(guān)聯(lián)的attribute字典中以鍵值對(duì)key/value形式存儲(chǔ)attribute(key一定要是可哈希的)
2)默認(rèn)情況下屬性字典是空的
3)可以通過add_edge() add_node() 方法或直接操作分別名為graph edges nodes的屬性字典來進(jìn)行操作

2. 代碼示例

import networkx as nx
import numpy as np 

#定義圖的節(jié)點(diǎn)和邊 
nodes=['0','1','2','3','4','5','a','b','c'] 
edges=[('0','0',1),('0','1',1),('0','5',1),('0','5',2),('1','2',3),('1','4',5),('2','1',7),('2','4',6),('a','b',0.5),('b','c',0.5),('c','a',0.5)] 

plt.subplots(1,2,figsize=(10,3)) 

#定義一個(gè)無向圖和有向圖 
G1 = nx.Graph() 
G1.add_nodes_from(nodes) 
G1.add_weighted_edges_from(edges) 
 
G2 = nx.DiGraph() 
G2.add_nodes_from(nodes) 
G2.add_weighted_edges_from(edges) 
 
pos1=nx.circular_layout(G1) 
pos2=nx.circular_layout(G2) 
 
#畫出無向圖和有向圖 
plt.subplot(121) 
nx.draw(G1,pos1, with_labels=True, font_weight='bold') 
plt.title('無向圖',fontproperties=myfont) 
plt.axis('on') 
plt.xticks([]) 
plt.yticks([]) 

plt.subplot(122) 
nx.draw(G2,pos2, with_labels=True, font_weight='bold') 
plt.title('有向圖',fontproperties=myfont) 
plt.axis('on') 
plt.xticks([]) 
plt.yticks([]) 

plt.show() 

 #控制numpy輸出小數(shù)位數(shù) 
np.set_printoptions(precision=3)  
 
#鄰接矩陣 
A = nx.adjacency_matrix(G1) 
print('鄰接矩陣:\n',A.todense()) 
鄰接矩陣: 
 [[0.  0.  0.  0.  5.  0.  0.  0.  6. ] 
 [0.  0.  0.  2.  0.  0.  0.  0.  0. ] 
 [0.  0.  0.  0.  0.  0.5 0.5 0.  0. ] 
 [0.  2.  0.  1.  1.  0.  0.  0.  0. ] 
 [5.  0.  0.  1.  0.  0.  0.  0.  7. ] 
 [0.  0.  0.5 0.  0.  0.  0.5 0.  0. ] 
 [0.  0.  0.5 0.  0.  0.5 0.  0.  0. ] 
 [0.  0.  0.  0.  0.  0.  0.  0.  0. ] 
 [6.  0.  0.  0.  7.  0.  0.  0.  0. ]] 

#關(guān)聯(lián)矩陣 
I = nx.incidence_matrix(G1) 
print('\n關(guān)聯(lián)矩陣:\n',I.todense()) 
關(guān)聯(lián)矩陣: 
 [[1. 1. 0. 0. 0. 0. 0. 0. 0.] 
  [0. 0. 1. 0. 0. 0. 0. 0. 0.] 
 [0. 0. 0. 1. 1. 0. 0. 0. 0.] 
  [0. 0. 1. 0. 0. 1. 0. 0. 0.] 
  [0. 1. 0. 0. 0. 1. 0. 1. 0.] 
 [0. 0. 0. 1. 0. 0. 0. 0. 1.] 
 [0. 0. 0. 0. 1. 0. 0. 0. 1.] 
 [0. 0. 0. 0. 0. 0. 0. 0. 0.] 
 [1. 0. 0. 0. 0. 0. 0. 1. 0.]] 

#拉普拉斯矩陣 
L=nx.laplacian_matrix(G1) 
print('\n拉普拉斯矩陣:\n',L.todense()) 
拉普拉斯矩陣: 
  [[11.   0.   0.   0.  -5.   0.   0.   0.  -6. ] 
 [ 0.   2.   0.  -2.   0.   0.   0.   0.   0. ] 
 [ 0.   0.   1.   0.   0.  -0.5 -0.5  0.   0. ] 
 [ 0.  -2.   0.   3.  -1.   0.   0.   0.   0. ] 
 [-5.   0.   0.  -1.  13.   0.   0.   0.  -7. ] 
 [ 0.   0.  -0.5  0.   0.   1.  -0.5  0.   0. ] 
 [ 0.   0.  -0.5  0.   0.  -0.5  1.   0.   0. ] 
 [ 0.   0.   0.   0.   0.   0.   0.   0.   0. ] 
  [-6.   0.   0.   0.  -7.   0.   0.   0.  13. ]] 

#標(biāo)準(zhǔn)化的拉普拉斯矩陣 
NL=nx.normalized_laplacian_matrix(G1) 
print('標(biāo)準(zhǔn)化的拉普拉斯矩陣:\n',NL.todense()) 
標(biāo)準(zhǔn)化的拉普拉斯矩陣: 
  [[ 1.     0.     0.     0.    -0.418  0.     0.     0.    -0.502] 
  [ 0.     1.     0.    -0.707  0.     0.     0.     0.     0.   ] 
  [ 0.     0.     1.     0.     0.    -0.5   -0.5    0.     0.   ] 
  [ 0.    -0.707  0.     0.75  -0.139  0.     0.     0.     0.   ] 
  [-0.418  0.     0.    -0.139  1.     0.     0.     0.    -0.538] 
  [ 0.     0.    -0.5    0.     0.     1.    -0.5    0.     0.   ] 
  [ 0.     0.    -0.5    0.     0.    -0.5    1.     0.     0.   ] 
  [ 0.     0.     0.     0.     0.     0.     0.     0.     0.   ] 
  [-0.502  0.     0.     0.    -0.538  0.     0.     0.     1.   ]] 

#有向圖拉普拉斯矩陣 
DL=nx.directed_laplacian_matrix(G2) 
print('\n有向拉普拉斯矩陣:\n',DL) 
有向拉普拉斯矩陣: 
  [[ 0.889 -0.117 -0.029 -0.087 -0.319 -0.029 -0.029 -0.129 -0.242] 
  [-0.117  0.889 -0.026 -0.278 -0.051 -0.026 -0.026 -0.114 -0.056] 
  [-0.029 -0.026  0.994 -0.012 -0.009 -0.481 -0.481 -0.025 -0.01 ] 
  [-0.087 -0.278 -0.012  0.757 -0.097 -0.012 -0.012 -0.052 -0.006] 
  [-0.319 -0.051 -0.009 -0.097  0.994 -0.009 -0.009 -0.041 -0.434] 
  [-0.029 -0.026 -0.481 -0.012 -0.009  0.994 -0.481 -0.025 -0.01 ] 
  [-0.029 -0.026 -0.481 -0.012 -0.009 -0.481  0.994 -0.025 -0.01 ] 
  [-0.129 -0.114 -0.025 -0.052 -0.041 -0.025 -0.025  0.889 -0.045] 
  [-0.242 -0.056 -0.01  -0.006 -0.434 -0.01  -0.01  -0.045  0.994]] 

#拉普拉斯算子的特征值 
LS=nx.laplacian_spectrum(G1) 
print('\n拉普拉斯算子的特征值:\n',LS) 
拉普拉斯算子的特征值: 
 [-1.436e-15  0.000e+00  4.610e-16  7.000e-01  1.500e+00  1.500e+00 
  4.576e+00  1.660e+01  2.013e+01] 

#鄰接矩陣的特征值 
AS=nx.adjacency_spectrum(G1) 
print('鄰接矩陣的特征值:\n',AS) 
鄰接矩陣的特征值: 
  [12.068+0.000e+00j  2.588+0.000e+00j -7.219+0.000e+00j -4.925+0.000e+00j 
 -1.513+0.000e+00j  1.   +0.000e+00j -0.5  +2.393e-17j -0.5  -2.393e-17j0.  +0.000e+00j]

#無向圖的代數(shù)連通性 
AC=nx.algebraic_connectivity(G1) 
print('無向圖的代數(shù)連通性:\n',AC) 
無向圖的代數(shù)連通性: 
  0.0 
  
#圖的光譜排序 
SO=nx.spectral_ordering(G1) 
print('圖的光譜排序:\n',SO) 
圖的光譜排序: 
 ['4', '2', '1', '0', '5', 'b', 'c', 'a', '3'] 

到此這篇關(guān)于python中networkx函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)python networkx使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python實(shí)現(xiàn)圖像標(biāo)記點(diǎn)的坐標(biāo)輸出功能

    使用Python實(shí)現(xiàn)圖像標(biāo)記點(diǎn)的坐標(biāo)輸出功能

    這篇文章主要介紹了使用Python實(shí)現(xiàn)圖像標(biāo)記點(diǎn)的坐標(biāo)輸出功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-08-08
  • Python的基本語法詳解

    Python的基本語法詳解

    本文詳細(xì)講解了Python的基本語法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 詳解PyQt5中textBrowser顯示print語句輸出的簡(jiǎn)單方法

    詳解PyQt5中textBrowser顯示print語句輸出的簡(jiǎn)單方法

    這篇文章主要介紹了詳解PyQt5中textBrowser顯示print語句輸出的簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 用python寫個(gè)顏值評(píng)分器篩選最美主播

    用python寫個(gè)顏值評(píng)分器篩選最美主播

    這篇文章主要介紹了我如何用python寫顏值評(píng)分器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 如何驗(yàn)證python安裝成功

    如何驗(yàn)證python安裝成功

    在本篇文章中小編給大家整理的是關(guān)于python安裝成功檢驗(yàn)方法,需要的朋友們可以參考下。
    2020-07-07
  • python requests模擬登陸github的實(shí)現(xiàn)方法

    python requests模擬登陸github的實(shí)現(xiàn)方法

    這篇文章主要介紹了python requests模擬登陸github的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python?代碼智能感知類型標(biāo)注與特殊注釋詳解

    Python?代碼智能感知類型標(biāo)注與特殊注釋詳解

    這篇文章主要為大家介紹了Python?代碼智能感知類型標(biāo)注與特殊注釋詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Python實(shí)現(xiàn)登錄接口的示例代碼

    Python實(shí)現(xiàn)登錄接口的示例代碼

    本篇文章主要介紹了Python實(shí)現(xiàn)登錄接口的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • python代碼的幾種常見加密方式分享

    python代碼的幾種常見加密方式分享

    這篇文章主要介紹了python代碼的幾種常見加密方式分享,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Pytest如何使用skip跳過執(zhí)行測(cè)試

    Pytest如何使用skip跳過執(zhí)行測(cè)試

    這篇文章主要介紹了Pytest如何使用skip跳過執(zhí)行測(cè)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

哈尔滨市| 巩留县| 新竹县| 大冶市| 汉阴县| 平陆县| 措美县| 清涧县| 濮阳县| 黑龙江省| 湾仔区| 谷城县| 西畴县| 贡山| 大庆市| 青州市| 东丽区| 绥化市| 齐齐哈尔市| 曲阳县| 思茅市| 金昌市| 濉溪县| 闵行区| 渭南市| 苗栗市| 长岛县| 宕昌县| 阜平县| 平舆县| 济源市| 潮州市| 开化县| 轮台县| 册亨县| 新化县| 航空| 宁陵县| 铅山县| 通化县| 宁城县|