networkx是python的一個(gè)庫,它為圖的數(shù)據(jù)結(jié)構(gòu)提供算法、生成器以及畫圖工具。近日在使用ryu進(jìn)行最短路徑獲取,可以通過該庫來簡化工作量。該庫采用函數(shù)方式進(jìn)行調(diào)用相應(yīng)的api,其參數(shù)類型通常為圖對象。
為晉城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及晉城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、做網(wǎng)站、晉城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
函數(shù)API的調(diào)用,按照以下步驟來創(chuàng)建構(gòu)建圖:
1.networkx的加載
在python中調(diào)用networkx通常只需要將該庫導(dǎo)入即可
import networkx as nx
2.圖對象的創(chuàng)建
networkx提供了四種基本圖對象:Graph,DiGraph,MultiGraph,MultiDiGraph。
使用如下調(diào)用方式,可以創(chuàng)建以上四種圖對象的空圖。
G=nx.Graph()
G=nx.DiGraph()
G=nx.MultiGraph()
G=nx.MultiDiGraph()
在 networkx中,圖的各個(gè)節(jié)點(diǎn)允許以哈希表對象來表示,而對于圖中邊的各個(gè)參量,則可以通過與邊相關(guān)聯(lián)的方式來標(biāo)識,一般而言,對于權(quán)重,用weight作為keyword,而對于其他的參數(shù),使用者可以采用任何除weight以外的keyword來命名。
3.在2中,創(chuàng)建的只是一副空圖,為了得到一個(gè)有節(jié)點(diǎn)、有邊的圖,一般采用下面這個(gè)函數(shù):
1
2
G.add_edge(1,2) #default edge data=1
G.add_edge(1,2) #specify edge data=0.9
add_edge()函數(shù),該函數(shù)在調(diào)用時(shí)需要傳入兩個(gè)參數(shù)u和v,以及多個(gè)可選參數(shù)
u和v即圖中的兩個(gè)節(jié)點(diǎn),如果圖中不存在節(jié)點(diǎn),在調(diào)用時(shí)會自動將這兩個(gè)節(jié)點(diǎn)添加入內(nèi),同時(shí)構(gòu)建兩個(gè)節(jié)點(diǎn)之間的連接關(guān)系,可選參數(shù)通常指這條邊的權(quán)重等關(guān)系參量。需要注意的是,如果圖中已經(jīng)存在了這條邊,重新進(jìn)行添加時(shí)會對這條邊進(jìn)行跟新操作(也就是覆蓋了原有的信息)。
對于該函數(shù),除了上述的構(gòu)建方式以外,還有以下幾種方式來創(chuàng)建邊:
1
2
3
G.add_edge(*e) # single edge as tuple of two nodes
G.add_edge(1, 3, weight=7, capacity=15, length=342.7) #using many arguements to create edge
G.add_edges_from( [(1, 2)] ) # add edges from iterable container
有時(shí)候,當(dāng)采用默認(rèn)方式創(chuàng)建邊以后,我們可能還會往邊里面添加邊的相關(guān)參數(shù),這時(shí)候,可以采用下面的方式來更新邊的信息:
1
2
3
4
5
#For non-string attribute keys, use subscript notation.
G.add_edge(1, 2)
G[1][2].update({0: 5}) #更新邊的信息
G.edges[1, 2].update({0: 5}) #更新邊的信息
#上述兩種更新方式,擇一選取即可
細(xì)心的朋友可能注意到我在寫創(chuàng)建圖的內(nèi)容的時(shí)候,提到了add_edges_from()函數(shù),該函數(shù)也是用來創(chuàng)建邊的,該方式與add_edges()略有不同,比之a(chǎn)dd_edges()采用一個(gè)一個(gè)節(jié)點(diǎn)的方式進(jìn)行創(chuàng)建,它來的更為便利。這個(gè)函數(shù)在調(diào)用時(shí),需要一個(gè)節(jié)點(diǎn)元組作為參數(shù)以及多個(gè)可選參數(shù)作為邊的信息。你可以這么傳遞:
默認(rèn)創(chuàng)建節(jié)點(diǎn)之間的邊:
1
G.add_edges_from([(u,v)])
也可以這么寫,在創(chuàng)建的同時(shí)添加信息:
1
G.add_edges_from([(3, 4), (1, 4)], label='WN2898')
通過上述方式,就構(gòu)建了一個(gè)3-4-1的圖的連接,并給每條邊打上了標(biāo)簽。
由此你就可以創(chuàng)建出自己的圖模型了。
有些Python小白對numpy中的常見函數(shù)不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個(gè)科學(xué)計(jì)算的庫,提供了矩陣運(yùn)算的功能,其一般與Scipy、matplotlib一起使用。其實(shí),list已經(jīng)提供了類似于矩陣的表示形式,不過numpy為我們提供了更多的函數(shù)。
數(shù)組常用函數(shù)
1.where()按條件返回?cái)?shù)組的索引值
2.take(a,index)從數(shù)組a中按照索引index取值
3.linspace(a,b,N)返回一個(gè)在(a,b)范圍內(nèi)均勻分布的數(shù)組,元素個(gè)數(shù)為N個(gè)
4.a.fill()將數(shù)組的所有元素以指定的值填充
5.diff(a)返回?cái)?shù)組a相鄰元素的差值構(gòu)成的數(shù)組
6.sign(a)返回?cái)?shù)組a的每個(gè)元素的正負(fù)符號
7.piecewise(a,[condlist],[funclist])數(shù)組a根據(jù)布爾型條件condlist返回對應(yīng)元素結(jié)果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數(shù)組維度
a.ravel(),a.flatten():將數(shù)組a展平成一維數(shù)組
a.shape=(m,n),a.reshape(m,n):將數(shù)組a轉(zhuǎn)換成m*n維數(shù)組
a.transpose,a.T轉(zhuǎn)置數(shù)組a
數(shù)組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數(shù)組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數(shù)組a,b沿豎直方向組合
3.row_stack((a,b))將數(shù)組a,b按行方向組合
4.column_stack((a,b))將數(shù)組a,b按列方向組合
數(shù)組分割
1.split(a,n,axis=0),vsplit(a,n)將數(shù)組a沿垂直方向分割成n個(gè)數(shù)組
2.split(a,n,axis=1),hsplit(a,n)將數(shù)組a沿水平方向分割成n個(gè)數(shù)組
數(shù)組修剪和壓縮
1.a.clip(m,n)設(shè)置數(shù)組a的范圍為(m,n),數(shù)組中大于n的元素設(shè)定為n,小于m的元素設(shè)定為m
2.a.compress()返回根據(jù)給定條件篩選后的數(shù)組
數(shù)組屬性
1.a.dtype數(shù)組a的數(shù)據(jù)類型
2.a.shape數(shù)組a的維度
3.a.ndim數(shù)組a的維數(shù)
4.a.size數(shù)組a所含元素的總個(gè)數(shù)
5.a.itemsize數(shù)組a的元素在內(nèi)存中所占的字節(jié)數(shù)
6.a.nbytes整個(gè)數(shù)組a所占的內(nèi)存空間7.a.astype(int)轉(zhuǎn)換a數(shù)組的類型為int型
數(shù)組計(jì)算
1.average(a,weights=v)對數(shù)組a以權(quán)重v進(jìn)行加權(quán)平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數(shù)組a的均值、最大值、最小值、中位數(shù)、方差、標(biāo)準(zhǔn)差
3.a.prod()數(shù)組a的所有元素的乘積
4.a.cumprod()數(shù)組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數(shù)組a和b的協(xié)方差、相關(guān)系數(shù)
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計(jì)算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數(shù)。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
python怎么根據(jù)權(quán)重賦分,使用python進(jìn)行數(shù)據(jù)分析之前,需要預(yù)先導(dǎo)入相對應(yīng)的功能庫。數(shù)據(jù)分析最常用的庫包括用于數(shù)值計(jì)算的numpy,基于numpy構(gòu)建的用于科學(xué)計(jì)算的Pandas庫,用于數(shù)據(jù)可視化的matplotlib和提供各種操作系統(tǒng)功能接口的OS庫。我們將這幾個(gè)庫導(dǎo)入到python中, import后是導(dǎo)入庫的名稱 as后是庫的簡稱。例如pandas庫的簡稱是pd,在后面的代碼中看到pd就表示這個(gè)操作使用了pandas庫
分享標(biāo)題:python畫權(quán)重函數(shù) python通過編程求權(quán)重
URL分享:http://jinyejixie.com/article34/hpccpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、標(biāo)簽優(yōu)化、軟件開發(fā)、服務(wù)器托管、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容