本文會介紹簡單的網(wǎng)絡(luò)知識,即便你沒有相關(guān)背景知識也能輕松學(xué)會。今天要教大家制作一張編程語言的關(guān)系網(wǎng)絡(luò)圖。
我們可以在這里看到從過去到現(xiàn)在的250多種編程語言之間的“設(shè)計影響”的關(guān)系,下面是該演示的截圖:
接下來,就讓我們一起來學(xué)做這個關(guān)系網(wǎng)絡(luò)圖吧!
在當今的超連接世界,網(wǎng)絡(luò)在現(xiàn)代生活中無處不在。舉個栗子,文摘菌的周末這樣開啟——通過北京的交通網(wǎng)絡(luò)進城,然后去最喜歡的咖啡店的一家分店,并將筆記本連上他們的Wi-Fi。接下來,登錄各種常用的社交網(wǎng)站。
眾所周知,在過去幾十年來最有影響力的公司中,有一部分是因為網(wǎng)絡(luò)的力量而獲得成功。
Facebook、Twitter、Instagram、LinkedIn以及一些其他的社交媒體平臺都依賴社交網(wǎng)絡(luò)的小世界特性。這使他們能有效地將用戶彼此(以及和廣告商)之間連接起來。
谷歌目前的成功主要歸因于他們早期在搜索引擎市場上的主導(dǎo)地位——部分原因是他們有能力通過他們的Page Rank網(wǎng)絡(luò)算法來返回相關(guān)的結(jié)果。
亞馬遜的高效配送網(wǎng)絡(luò)使他們能夠在一些主要城市提供當天發(fā)貨。
網(wǎng)絡(luò)算法在人工智能和機器學(xué)習(xí)等領(lǐng)域也是非常重要的。神經(jīng)網(wǎng)絡(luò)領(lǐng)域的研究非常熱門。計算機視覺中許多必不可少的特征檢測算法,在很大程度上也是依賴于使用網(wǎng)絡(luò)來對圖像的不同部分進行建模。
網(wǎng)絡(luò)模型也可以解釋大量的科學(xué)現(xiàn)象,包括有量子力學(xué)、生化途徑以及生態(tài)和社會經(jīng)濟系統(tǒng)等。
那么,鑒于它們不可否認的重要性,我們應(yīng)該如何更好地理解網(wǎng)絡(luò)及其屬性呢?
網(wǎng)絡(luò)的數(shù)學(xué)研究被稱為“圖論”,是數(shù)學(xué)中較易理解的分支之一。本文會介紹簡單的網(wǎng)絡(luò)知識,即便你沒有相關(guān)背景知識也能輕松學(xué)會。
此外,我們將使用Python 3.x和一款非常棒的開源軟件Gephi,通過關(guān)系網(wǎng)絡(luò)將過去和現(xiàn)在的一系列編程語言的網(wǎng)絡(luò)可視化聯(lián)系起來。
首先,究竟什么是網(wǎng)絡(luò)呢?
其實上面文摘菌舉的栗子已經(jīng)給了一些線索。交通網(wǎng)絡(luò)由目的和路徑的連接組成。社交網(wǎng)絡(luò)通過個人和個人之間的關(guān)系進行連接。Google的搜索引擎算法通過查看有哪些頁面鏈接到其他頁面,來評估不同網(wǎng)頁的“順序”。
更一般地說,網(wǎng)絡(luò)是可以用節(jié)點和邊描述的任何系統(tǒng),或者通俗來講,就是我們所說的“點和線”。
邊連接節(jié)點(語言)的例子(該網(wǎng)絡(luò)表示了編程語言相互影響的關(guān)系)
有些系統(tǒng)以這種方式建立網(wǎng)絡(luò)比較容易。社交網(wǎng)絡(luò)也許是最明顯的例子。計算機文件系統(tǒng)則是另一種方式——文件夾和文件通過其“父”和“子”關(guān)系創(chuàng)建連接。
但是,網(wǎng)絡(luò)的真正威力其實在于,許多系統(tǒng)都可以從網(wǎng)絡(luò)的角度來建模,即使這起初并不明顯。
代表網(wǎng)絡(luò)
我們應(yīng)該如何將點和線的圖片轉(zhuǎn)換成我們可以壓縮的數(shù)字信號呢?
其中有一個解決方案是繪制一個鄰接矩陣來表示我們的網(wǎng)絡(luò)。
如果你不熟悉矩陣這個概念,這聽起來可能有點嚇人,但不要害怕。 把它們想象成可以一次執(zhí)行許多計算的數(shù)字網(wǎng)格就好。下面是一個簡單的例子:
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoKAVwwdAAAwm3EwE14145.jpg)
在這個矩陣中,每個行和列的交集都是0或1,這取決于各個語言是否被鏈接。你也可以根據(jù)上面的插圖觀察到!
對于要解決的大多數(shù)問題而言,矩陣是以數(shù)學(xué)方式表示網(wǎng)絡(luò)的好方法。然而從計算的角度來看,它有時可能會有點麻煩。
例如,即使節(jié)點數(shù)量相對較少(比如說有1000個),矩陣中的元素數(shù)目也會大得多(例如,1000^2 = 1,000,000)。
許多現(xiàn)實世界的系統(tǒng)會產(chǎn)生稀疏網(wǎng)絡(luò),在這些網(wǎng)絡(luò)中,大多數(shù)節(jié)點只能連接其他所有節(jié)點中的一小部分。
如果我們將計算機內(nèi)存中1000個節(jié)點的稀疏網(wǎng)絡(luò)表示為鄰接矩陣,那么我們將在RAM中存儲1,000,000個字節(jié)的數(shù)據(jù)。大多數(shù)將會是零。這里有一個更為有效的方法可以解決這個問題。
這種方法是使用邊列表來代替鄰接矩陣。這些正是他們所說的,它們只是一個節(jié)點對相互鏈接的列表。
表示網(wǎng)絡(luò)的另一種手段是鄰接表,它列出了每個節(jié)點后面與它進行鏈接的節(jié)點。例如:
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoOAARKnAAAcaQVf_40580.jpg)
收集數(shù)據(jù),建立連接
任何網(wǎng)絡(luò)模型以及可視化的表現(xiàn)都取決于構(gòu)建網(wǎng)絡(luò)本身所用的數(shù)據(jù)質(zhì)量好壞。除了確保數(shù)據(jù)是準確和完整的同時,我們也需要一種推斷節(jié)點之間邊的合理方法。
這是相當關(guān)鍵的一步,隨后對網(wǎng)絡(luò)進行的任何分析和推斷都取決于“關(guān)聯(lián)標準”的合理性。
例如,在社交網(wǎng)絡(luò)分析中,你可能會根據(jù)人們是否在社交媒體上相互關(guān)聯(lián)來創(chuàng)建人與人之間的聯(lián)系。在分子生物學(xué)中,你可能會基于基因的共同表達建立連接。
通常,我們還可以給邊分配權(quán)重,從而體現(xiàn)關(guān)系的“強度”。
例如,對于網(wǎng)上零售的情況,可以根據(jù)產(chǎn)品被同時購買的頻率來計算權(quán)重。用高權(quán)重的邊連接經(jīng)常被同時購買的產(chǎn)品,用低權(quán)重的邊連接偶爾被同時購買的產(chǎn)品。和偶爾被同時購買的產(chǎn)品相比,那些不會被同時購買的產(chǎn)品根本就不會被網(wǎng)絡(luò)連接。
正如你想的那樣,將節(jié)點彼此連接的方法有可能很復(fù)雜。
但是對于本教程,我們將使用更簡單的方式連接編程語言。我們要依靠維基百科。
維基百科所取得的的成功證明了它的可靠性。文章寫作的開源合作方法也應(yīng)該保證一定程度的客觀性。
而且,它的頁面結(jié)構(gòu)相對一致,使其成為試用網(wǎng)頁抓取技術(shù)的便利場所。
另一個便利工具是覆蓋面廣泛的、有據(jù)可查的維基百科API,這使得信息檢索更容易。接下來讓我們一起開始吧。
第一步:安裝Gephi
Gephi可在Linux、Mac和Windows的環(huán)境下進行安裝。
對于這個項目,我使用了Lubuntu。如果你使用的是Ubuntu / Debian,那么你可以按照下面的步驟來啟動和運行Gephi。如果不是,那么安裝過程也不會差太多。
下載最新版本的Gephi到你的系統(tǒng)(在撰寫本文時是v.0.9.1)。準備就緒后,你需要提取文件。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoSATT0oAAAys27qMTo629.jpg)
你可能需要檢查你的Java JRE版本。Gephi需要最新版本。在我剛剛安裝的Lubuntu上,我只安裝了default-jre,下面的一切將建立在此基礎(chǔ)上。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoSAAy9nAAAys27qMTo140.jpg)
在你準備好進行安裝之前還有一步。為了將圖表導(dǎo)出到Web,你可以使用Gephi的Sigma.js插件。
從Gephi的菜單欄中選擇“工具”選項,然后選擇“插件”。
點擊“可用插件”標簽并選擇“SigmaExporter”(我也安裝了JSON導(dǎo)出器,因為它是另一個有用的插件)。
點擊“安裝”按鈕,你將完成整個安裝過程。安裝結(jié)束后,你需要重新啟動Gephi。
第二步:編寫Python腳本
本教程將使用python 3.x以及一些模塊來進行簡化。使用pip模塊安裝程序,需運行一下命令:
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoSAWkn2AAAL7WVTF0c969.jpg)
現(xiàn)在,在一個新的目錄中,創(chuàng)建一個名為script.py的文件,并在你最喜歡的代碼編輯器/ IDE中打開它。以下是主要邏輯的大綱:
首先,你需要有一個編程語言的列表。
接下來,通過該列表并檢索維基百科相關(guān)文章的HTML。
從中提取出每種語言所影響的編程語言列表。這是我們連接節(jié)點的粗略標準。
同時,我們可以抓取一些關(guān)于每種語言的元數(shù)據(jù)。
最后,將收集的所有數(shù)據(jù)寫入一個.csv文件。
完整的腳本在這里:
(https://gist.github.com/anonymous/2a6c841fe04ebc6d55acc259b4ac4f72)。
導(dǎo)入模塊
在script.py中,首先導(dǎo)入一些模塊。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoWAVtV1AAA8n7-x264064.jpg)
準備好后——從創(chuàng)建一個節(jié)點的列表開始。這是Wikipedia模塊派上用場的地方。它使得訪問維基百科API非常容易。
添加下面的代碼:
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoWAbt90AABAzuA7wVs969.jpg)
保存并運行上面的腳本,將看到打印出“List of programming languages”維基百科文章中的所有鏈接。
另外,還需要手動檢查自動收集的數(shù)據(jù)。快速瀏覽后我們可以發(fā)現(xiàn),除了許多實際的編程語言之外,該腳本還提供了一些額外的鏈接。
如:可能會看到“List of markup languages”,“Comparison of programming languages”等。
雖然Gephi允許你移除不想包含的節(jié)點,但為了節(jié)省時間,還是讓我們先進行一輪數(shù)據(jù)清洗。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoWAE_eNAABRr7EhVV8583.jpg)
這些代碼定義了要從數(shù)據(jù)中移除的子字符串列表。運行該腳本時遍歷數(shù)據(jù),移除所有包含不需要的子字符串的元素。
在Python語言中,完成這些只需要一行代碼!
其他輔助函數(shù)
現(xiàn)在我們可以開始從wikipedia抓取數(shù)據(jù)并建立一個邊列表(并收集所有元數(shù)據(jù))。為了更簡便,讓我們首先定義一些函數(shù)。
抓取HTML
第一個函數(shù)使用BeautifulSoup模塊來獲取每種語言的Wikipedia頁面的HTML。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoWAL3gmAACDNG6c_bE194.jpg)
這個函數(shù)使用urllib.request模塊來獲取“https://en.wikipedia.org/wiki/”+“編程語言”頁面的HTML。
然后傳給BeautifulSoup,它將讀取HTML并解析為一個可以用來搜索信息的對象。
接下來,使用find_all()方法抓取感興趣的HTML元素。
下面,是每種編程語言文章頂部的匯總表。該如何識別呢?
最簡單的方法是訪問其中一個編程語言頁面。在這里,可以簡單地使用瀏覽器的開發(fā)工具來檢查感興趣的元素。匯總表有HTML標記
和CSS類“infobox”和“vevent”,因此可以使用這些來標識HTML中的表格。
用參數(shù)指定它:
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoaAE5B_AAApi7dayto443.jpg)
find_all()返回符合標準的所有元素列表。為了指定感興趣的元素,需要添加索引[0]。如果函數(shù)執(zhí)行成功,則返回table對象,否則,返回None。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoaAOA8YAABnRj2cO8A415.jpg)
在使用了自動數(shù)據(jù)收集程序的情況下,全面的異常處理是非常重要的。如果沒有,那么在最好的情況下如果腳本崩潰了,數(shù)據(jù)抓取程序需要重新開始執(zhí)行。
在最壞的情況下,你獲得數(shù)據(jù)集將包含不一致性和錯誤,這將為你后續(xù)的工作買下隱患。
檢索元數(shù)據(jù)
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoaARA_YAABr-ZlhuWQ972.jpg)
下一個函數(shù)使用table對象來查找一些元數(shù)據(jù)。下面給出在表格中搜索語言第一次出現(xiàn)的年份的代碼。
這個簡短的函數(shù)以table對象作為參數(shù),并調(diào)用BeautifulSoup的get_text()函數(shù)生成一個字符串。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoeAOhcqAAAfHQhsD78023.jpg)
下一步是創(chuàng)建一個名為year的子字符串。該字符串存儲了在“appear”這個詞首次出現(xiàn)之后的30個字符。這個字符串應(yīng)該包含語言第一次出現(xiàn)的年份。
為了僅提取年份,使用正則表達式(通過re模塊)來匹配任何以1到3之間的數(shù)字開頭、并緊鄰三個數(shù)字的字符串。
如果執(zhí)行成功,函數(shù)將返回一個整數(shù)的year。否則,我們會得到“Could not determine”。你可能還想進一步挖掘元數(shù)據(jù),例如范例,設(shè)計者或打字規(guī)律。
收集鏈接
我們還需要一個函數(shù)–該函數(shù)讀入給定語言的table對象,輸出一個包含其他編程語言的列表。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoeAKKRRAACb8QPmZ-A480.jpg)
仔細觀察上面代碼中嵌套部分,到底是怎么回事呢?
這個函數(shù)利用了table對象具有結(jié)構(gòu)一致性的事實。表中的信息存儲在行中(相關(guān)的HTML標簽是
)。其中一行包含文字“ nInfluenced n”。函數(shù)的第一部分查找這是哪一行。
一旦找到這一行,就可以確定下一行包含了被當前行影響的每種編程語言的鏈接。使用find_all(“a”)便可查找這些鏈接 - 其中參數(shù)“a”對應(yīng)于HTML標簽。
對于每個鏈接j,將其[“title”]屬性添加到名為out的列表。對[“title”]屬性感興趣的原因是因為它將完全匹配存儲在節(jié)點中的語言名稱。
例如,Java作為“Java(編程語言)”存儲在節(jié)點中,因此需要在整個數(shù)據(jù)集中使用這個確切的名稱。
如果執(zhí)行成功,getLinks()將返回一組編程語言。該函數(shù)的其余部分進行了異常處理,以防程序在某一階段出現(xiàn)問題。
收集數(shù)據(jù)
最后,在一切準備就緒后執(zhí)行腳本,收集數(shù)據(jù)并將其存儲在兩個列表對象中。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtoiARpvPAAAlJBeF2f0660.jpg)
現(xiàn)在編寫一個循環(huán),將先前定義的函數(shù)應(yīng)用于nodes中的每個詞條,并將輸出存儲在edgeList和meta中。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtomAFd-9AACJQ4H6a9k852.jpg)
該函數(shù)使用節(jié)點中的每種語言,并嘗試從維基百科頁面檢索匯總表。
然后,該函數(shù)將檢索表中列出的與目標語言所關(guān)聯(lián)的全部語言。
對于同時出現(xiàn)在節(jié)點列表中的每種語言,將一個元素以[“source,target”]的形式添加到edgeList。通過這種方式,建立一個邊的列表傳給Gephi。
出于調(diào)試的目的,打印添加到edgeList的每個元素——這樣做僅僅為了確保一切都工作。如果想要更徹底地調(diào)試,也可以添加打印語句到except語句中。
接下來,獲取語言的名稱和年份,并將其添加到元列表中。
寫進CSV文件
一旦循環(huán)運行,最后一步是將edgeList和meta的內(nèi)容寫入到CSV文件。通過使用前面導(dǎo)入的csv模塊,完成上一步驟就容易多了。
![](http://file.elecfans.com/web1/M00/6B/02/o4YBAFvbtomAS_y3AABial8CXyw136.jpg)
完成了!保存腳本,并從終端運行:
$ python3 script.py
當構(gòu)建邊列表時,你可以看到腳本輸出了source-target對。確保網(wǎng)絡(luò)連接的穩(wěn)定性后,你就可以坐等結(jié)果了,此時腳本將發(fā)揮其魔力。
第三步:用Gephi建立圖形
希望你已經(jīng)安裝并運行了Gephi。現(xiàn)在你可以創(chuàng)建一個新項目,并使用你收集的數(shù)據(jù)來構(gòu)建有向圖。有向圖將顯示不同的編程語言是如何相互影響的!
首先在Gephi中創(chuàng)建一個新項目,然后切換到“數(shù)據(jù)實驗室”窗口。Gephi中提供了一個擴展式的接口來處理數(shù)據(jù)。首先要導(dǎo)入列表。
點擊“導(dǎo)入電子表格”。
選擇由Python腳本生成的edge_list.csv文件。確保Gephi中使用逗號作為分隔符。
從列表類型中選擇“邊列表”
點擊“下一步”,導(dǎo)入源和目標列作為字符串,并檢查。
用一個節(jié)點列表來更新數(shù)據(jù)實驗室。現(xiàn)在,導(dǎo)入 metadata.csv文件。這一次,從列表類型中選擇“節(jié)點列表”。
切換到“Preview”選項卡,查看網(wǎng)絡(luò)的外觀。
這時的圖形看起來顏色十分單一,而且雜亂無章,就像一盤意大利面。所以我們接下來要進行圖像美化。
圖像美化
我們可以通過各種方式來演示圖像,也可以盡情發(fā)揮自己的創(chuàng)意。另外,關(guān)于網(wǎng)絡(luò)可視化還要考慮以下三件事情:
節(jié)點定位:生成網(wǎng)絡(luò)布局模式的算法有很多,比較流行的是fruchterman - reingold算法,而且Gephi支持該算法。
節(jié)點大小:圖中節(jié)點的大小可以用來表示一些有趣的屬性。通常,這是一個中心性度量。度量中心性的方法有很多,但它們都反映了給定節(jié)點的“重要性”,即它與網(wǎng)絡(luò)的其他部分關(guān)聯(lián)的緊密程度。
節(jié)點著色:我們還可以使用顏色來顯示節(jié)點的某些屬性。通常,顏色用來表示群落結(jié)構(gòu),廣泛定義為“與圖的其余部分相比關(guān)聯(lián)更緊密的一組節(jié)點”。在社交網(wǎng)絡(luò)中,群落結(jié)構(gòu)可以揭示個人的友情、家庭或?qū)I(yè)團體之間的關(guān)聯(lián)。有幾種算法可以檢測群落結(jié)構(gòu),Gephi自帶的檢測算法是Louvain方法。
要執(zhí)行上述步驟,還需要計算一些統(tǒng)計數(shù)據(jù)。切換到“Overview”窗口。在這里你可以看到右側(cè)的一個面板。它包含一個“Statistics”選項卡。打開它,你將看到一系列選項。
Gephi具有許多內(nèi)置的統(tǒng)計功能。對于每種功能,點擊“Run”將生成一個報告,該報告揭示了關(guān)于網(wǎng)絡(luò)的一些洞見。
如果要修改網(wǎng)絡(luò)的外觀,我們可以轉(zhuǎn)向左邊的面板。
在“Layout”選項卡中,可以選擇要使用的布局算法。點擊“運行”,實時觀看圖表的變化!看看你認為哪種布局算法效果最好。
在Layout選項卡之上是“Appearance”選項卡。在這里,你可以為節(jié)點和各條邊的顏色、大小和標簽進行設(shè)置,也可以根據(jù)數(shù)據(jù)的屬性來配置(包括你要計算的數(shù)據(jù))。
一個建議:
根據(jù)模塊化屬性將節(jié)點著色。著色的根據(jù)是節(jié)點的群落成員關(guān)系。
根據(jù)節(jié)點的平均程度來確定節(jié)點的大小。關(guān)聯(lián)緊密的節(jié)點會比關(guān)聯(lián)稀疏的節(jié)點顯得大。
不過,也可以嘗試設(shè)計一個最喜歡的布局。一旦對圖形外觀感到滿意,就可以進入最后一個步驟——將圖形導(dǎo)出至網(wǎng)頁!
第四步:使用Sigma.js插件
既然已經(jīng)構(gòu)建了一個可以在Gephi中查看的網(wǎng)絡(luò)可視化,接下來可以選擇使用屏幕截圖,或者以SVG、PDF或PNG格式保存圖形。
如果已經(jīng)安裝了Sigma.js插件,也可以把圖形導(dǎo)出到HTML,這將會創(chuàng)建一個交互式可視化,不僅可以在線上發(fā)布,也可以上傳到GitHub,與他人分享。
可從Gephi的菜單欄選擇“Export >Sigma.js模板…”。
按要求填寫詳細信息。確保選擇導(dǎo)出項目所在的目錄。你也可以更改圖形的標題、圖例、描述、懸停和許多其他細節(jié)。當你準備好了,點擊“確定”。
現(xiàn)在,如果你打開導(dǎo)出項目所在的目錄,你將看到一個文件夾,其中包含Sigma.js生成的所有文件。
在你最喜歡的瀏覽器打開index.html文件。哈!你的網(wǎng)絡(luò)!如果你知道一些CSS和JavaScript,可以載入各種生成的文件到你的網(wǎng)絡(luò)中,以便按照你的意愿調(diào)整輸出的網(wǎng)絡(luò)。
腦洞開一開,網(wǎng)絡(luò)畫起來
許多系統(tǒng)可以作為網(wǎng)絡(luò)進行建模和可視化。圖論是數(shù)學(xué)的一個分支,它提供了幫助理解網(wǎng)絡(luò)結(jié)構(gòu)和屬性的工具。
使用Python從Wikipedia獲取數(shù)據(jù),構(gòu)建編程語言影響圖。關(guān)聯(lián)標準是一種給定的語言是否能被列為對設(shè)計另一種語言的影響。
Gephi和Sigma.js是分析和可視化網(wǎng)絡(luò)的開源工具。它們可以讓你以圖像、PDF或Web格式導(dǎo)出網(wǎng)絡(luò)。
模仿本文的方法,你還可以為很多其他的關(guān)系建模并做出可視化。腦洞開一開,網(wǎng)絡(luò)畫起來。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標題:手把手:一張圖看清編程語言發(fā)展史,你也能用Python畫出來!
文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
大家誰知道這種網(wǎng)絡(luò)圖怎么做啊?求代碼
發(fā)表于 12-11 14:15
方式 1. 自主學(xué)習(xí) Python是一門相對簡單的編程語言,如果你有編程功底,同時自學(xué)能力還很強,可以選擇自學(xué)Python,
發(fā)表于 12-20 16:05
Python是一門簡單、易學(xué)并且很有前途的編程語言,很多人都對Python感興趣,但是當學(xué)完Python基礎(chǔ)用法之后,又會產(chǎn)生迷茫,尤其是自
發(fā)表于 02-05 17:50
Python是廣泛用于各種應(yīng)用程序領(lǐng)域的流行高級編程語言之一。該語言是由荷蘭程序員創(chuàng)建的,最初于1991年發(fā)布。美國的Python專家,
發(fā)表于 09-16 15:54
網(wǎng)絡(luò)圖論的基本概念
對于一個電路圖,如果用點表示其節(jié)點,
發(fā)表于 07-27 09:47
?3096次閱讀
世界上最大的編程相關(guān)書籍出版商Packt Publishing進行的市場研究顯示,Java和Python是當今最流行的編程語言,Java流行程度位居第3。 該公司通過調(diào)查11000受訪
發(fā)表于 09-26 10:22
?0次下載
和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。下面我們來看看python串口
發(fā)表于 01-15 09:35
?4.6w次閱讀
針對復(fù)雜機電系統(tǒng)故障網(wǎng)絡(luò)圖(FG)模型構(gòu)建問題,對失效模式和效果分析(FMEA)的方法進行了研究,對FMEA故障模式關(guān)聯(lián)影響和邏輯關(guān)系進行了分析,對故障關(guān)聯(lián)矩陣和其形式化表達之間的關(guān)系進行了歸納
發(fā)表于 02-26 10:42
?1次下載
網(wǎng)絡(luò)圖,其實就是指用圖片的形式去表達傳輸媒體互聯(lián)各種設(shè)備的物理布局,其實不只是專業(yè)的工作人員會用到,咱們自家房子的裝修、公司里網(wǎng)絡(luò)改裝升級等都會接觸到。那么當今市面上有哪些簡單易用的網(wǎng)絡(luò)圖制作
發(fā)表于 06-15 20:43
?7092次閱讀
多關(guān)系網(wǎng)絡(luò)的社團結(jié)構(gòu)發(fā)現(xiàn)算法綜述
發(fā)表于 06-11 16:18
?7次下載
基于強連接網(wǎng)絡(luò)圖的無損壓縮算法綜述
發(fā)表于 06-27 11:13
?6次下載
自學(xué)python單片機編程-用Python語言控制單片機
發(fā)表于 11-13 17:36
?40次下載
用Python學(xué)習(xí)科學(xué)編程,Python經(jīng)典教材。
發(fā)表于 03-09 15:00
?0次下載
python和人工智能的關(guān)系 Python語言是人工智能領(lǐng)域最為流行和廣泛應(yīng)用的編程語言之一,因
發(fā)表于 08-17 16:29
?846次閱讀
Python編程語言屬于高級編程語言中的一種。它是一種通用、面向?qū)ο蟆⒔忉屝?b class='flag-5'>編程
發(fā)表于 11-22 14:31
?1624次閱讀
百家乐桌出租|
天天乐娱乐|
百家乐长胜攻略|
百家乐现金网排名|
试玩百家乐官网代理|
真人百家乐官网ea平台|
同江市|
无棣县|
疏勒县|
德州扑克教学|
大发888在线娱乐城代理|
威尼斯人娱乐城投注|
大赢家百家乐的玩法技巧和规则|
豪华百家乐桌子|
百家乐在线娱乐可信吗|
作弊百家乐赌具价格|
百家乐高科技出千工具|
网络百家乐的破解|
百家乐技巧在那里|
百家乐官网游戏大厅下|
百家乐官网21点桌|
威尼斯人娱乐城澳门赌场|
五张百家乐的玩法技巧和规则|
百家乐游戏接口|
百家乐技巧介绍|
百家乐的规则玩法|
大发888娱乐城dafa888dafa8|
老虎机技巧|
德州扑克书籍|
岑溪市|
百家乐官网发牌铲|
百家乐官网游戏程序出售|
百家乐官网赌场占多大概率|
百家乐官网赢钱心得|
百家乐官网屏风|
长春百家乐官网的玩法技巧和规则
|
百家乐官网投住系统|
百家乐官网这样赢保单分析
|
大发888娱乐场客户端|
bet365备用主页器|
新濠百家乐官网现金网|
評論