Python Graph Library [ปิด]


354

ฉันกำลังเขียนแอพพลิเคชั่นหลามที่จะใช้ประโยชน์จากโครงสร้างข้อมูลกราฟอย่างหนัก ไม่มีอะไรซับซ้อนอย่างน่ากลัว แต่ฉันคิดว่าไลบรารี / กราฟ - อัลกอริธึมบางอย่างจะช่วยฉันได้ ฉันไปเที่ยวรอบ ๆ แต่ฉันไม่พบสิ่งใดที่กระโดดออกมาจากฉันโดยเฉพาะ

ใครมีคำแนะนำที่ดีบ้าง


คุณกำลังมองหาอัลกอริธึมกราฟใด
แอนดรู

1
Amoss ฉันกำลังมองหาห้องสมุดกราฟที่สามารถคำนวณเส้นทางที่สั้นที่สุดที่ให้น้ำหนัก สิ่งพื้นฐานจริงๆ ฉันลงเอยด้วย networkx มันใช้งานได้ดีทีเดียว แม้ว่าฉันจะไม่ได้สัมผัสโครงการเลยซักพัก คำถามนี้ถูกถามเมื่อหนึ่งปีก่อน
cpatrick

108
มันแปลกอย่างน่าประหลาดใจที่มีคำถามเช่นนั้นมีประโยชน์และได้รับคะแนนมากเช่นนี้สามารถจัดเป็น "ไม่สร้างสรรค์"
Jim Raynor

1
คุณอาจใช้ "ฐานข้อมูลกราฟเนทีฟ" เช่น neo4j จากนั้นใช้การโยงหลามเพื่อพูดคุยกับ db?
STEFANI

3
@JimRaynor "ไม่สร้างสรรค์" เป็นสิ่งที่จับได้ทั้งหมด เหตุผลที่ปิดได้รับการปรับปรุงให้ดีขึ้น (ไม่สมบูรณ์ แต่ดีกว่า) ครอบคลุมการใช้งานที่ต้องการ วันนี้จะปิดเป็นคำถามคำแนะนำ
jpmc26

คำตอบ:


237

มีสองตัวเลือกที่ยอดเยี่ยม:

NetworkX

และ

igraph

ฉันชอบ NetworkX แต่ฉันอ่านสิ่งดีๆเกี่ยวกับการเขียนด้วยลายมือเช่นกัน ฉันใช้ NetworkX เป็นประจำกับกราฟที่มี 1 ล้านโหนดโดยไม่มีปัญหา (ประมาณค่าใช้จ่ายสองเท่าของขนาด V + E)

หากคุณต้องการเปรียบเทียบคุณลักษณะให้ดูสิ่งนี้จากรายการ Networkx-discuss

ด้ายเปรียบเทียบคุณสมบัติ


4
โดยเฉพาะอย่างยิ่งสิ่งที่ฉันชอบเกี่ยวกับ Networkx .... ส่วนใหญ่เป็นงูหลามง่ายต่อการแก้ไขและทำความเข้าใจซอร์สโค้ด
Gregg Lind

1
ฉันสงสัยว่าคุณใช้กับ * หรืออัลกอริทึมที่คล้ายกันหรือไม่?
dassouki

4
ฉันแค่ประเมินทั้งสองอย่าง networkxสามารถติดตั้งผ่านทางpipในขณะที่igraphไม่ได้ สิ่งนี้ทำให้igraphยากต่อการใช้เป็นการอ้างอิงในsetup.pyไฟล์ของคุณ
exhuma

3
ในฐานะที่เป็นอัปเดตสำหรับปี 2013 ฉันจะใช้เน็ตเวิร์ก x แค่ b / c มันมี github และดูตัวเลือกทั้งหมดในคำตอบนี้และอื่น ๆ ได้มากที่สุด
МатиТернер

1
igraph ยังมี github: github.com/igraph/python-igraph
user_1_1_1

105

ผมอยากจะเสียบห้องสมุดกราฟหลามของตัวเอง: กราฟเครื่องมือ

มันเร็วมากเนื่องจากมีการใช้งานใน C ++ พร้อมด้วย Boost Graph Library และมีอัลกอริทึมมากมายและเอกสารประกอบมากมาย


6
เครื่องมือกราฟที่ยอดเยี่ยม
Sean

5
+1 สำหรับเครื่องมือกราฟ เราใช้มันในห้องแล็บของเรา มันเร็วมากเมื่อเทียบกับห้องสมุดไพ ธ อนอื่น ๆ นอกจากนี้การวาดและการแสดงกราฟก็ยอดเยี่ยมในเครื่องมือกราฟ ใช้เวลาในการรวบรวมมาก!
Dilawar

5
ไม่มี windows รองรับน่าเสียดาย :(
Mike Chaliy

2
@TiagoPeixoto มันดูดีมาก แต่ก็ไม่สามารถใช้งานได้บน windows ฉันติดอยู่กับ NetworkX แล้วพบว่าช้าเกินไป
Naman

2
@ColonelPanic นี่คือคำถามที่พบบ่อยดูgraph-tool.skewed.de/download : "คำตอบสั้น ๆ คือมันไม่สามารถทำได้เนื่องจากกราฟเครื่องมือขึ้นอยู่กับห้องสมุด C ++ บางอย่างที่ยอดเยี่ยมเช่น Boost ซึ่งเป็น ไม่สามารถติดตั้งผ่าน pip ได้ "
Tiago Peixoto



6

ใช้Boost กราฟห้องสมุด - งูใหญ่ผูก


1
Nice one dehmann ฉันไปก่อน (เป็นโปรแกรมเมอร์ C ++ โดยการค้าและการเพิ่มความรักอย่างแน่นอน) แต่สิ่งนี้ทำให้ฉันกลัว: การผูก BGL-Python จะไม่ได้รับการบำรุงรักษา <a top of page> อีกต่อไป
cpatrick

3
ดูที่กราฟ - เครื่องมือแทนมันเป็น bgl และแอคทีฟ
Sean



0

ฉันสองข้อเสนอแนะของ zweiterlinde เพื่อใช้ python-graph ฉันใช้มันเป็นพื้นฐานของโครงการวิจัยบนกราฟที่ฉันกำลังทำอยู่ ห้องสมุดเขียนได้ดีมีเสถียรภาพและมีส่วนต่อประสานที่ดี ผู้เขียนยังตอบคำถามและรายงานได้อย่างรวดเร็ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.