Perpustakaan Grafik Python [ditutup]

354

Saya sedang menulis aplikasi python yang akan banyak menggunakan struktur data grafik. Tidak ada yang mengerikan kompleks, tapi saya pikir semacam grafik / grafik-algoritma perpustakaan akan membantu saya. Saya sudah googled sekitar, tetapi saya tidak menemukan apa pun yang terutama melompat keluar kepada saya.

Adakah yang punya rekomendasi bagus?

catrick
sumber
Algoritma grafik mana yang Anda cari?
Andrew
1
Amoss, saya sedang mencari perpustakaan grafik yang bisa menghitung jalur terpendek diberi bobot. Hal-hal dasar, sungguh. Saya akhirnya menggunakan networkx. Ini bekerja dengan cukup baik. Saya belum menyentuh proyek ini untuk sementara waktu. Pertanyaan ini ditanyakan lebih dari setahun yang lalu.
cpatrick
108
Sangat aneh bahwa ada pertanyaan yang sangat membantu dan mendapatkan suara seperti ini dapat diklasifikasikan sebagai "tidak konstruktif".
Jim Raynor
1
Anda juga dapat menggunakan "database grafik asli" seperti neo4j, lalu gunakan pengikat python untuk berdiskusi dengan db?
A STEFANI
3
@ JimRaynor "Tidak konstruktif" adalah tangkapan lama semua. Alasan penutupan telah diperbarui untuk lebih baik (tidak sempurna, tetapi lebih baik) mencakup penggunaan yang dimaksud. Hari ini, ini akan ditutup sebagai pertanyaan rekomendasi.
jpmc26

Jawaban:

237

Ada dua pilihan bagus:

NetworkX

dan

igraph

Saya suka NetworkX, tetapi saya membaca hal-hal baik tentang igraph juga. Saya secara rutin menggunakan NetworkX dengan grafik dengan 1 juta node tanpa masalah (ini tentang menggandakan overhead dari ukuran dict V + E)

Jika Anda ingin perbandingan fitur, lihat ini dari daftar Networkx-mendiskusikan

Utas perbandingan fitur

Gregg Lind
sumber
4
Secara khusus, apa yang saya sukai tentang Networkx .... sebagian besar dalam python, mudah untuk mengedit dan memahami kode sumber, dan rasanya kebanyakan "pythonic".
Gregg Lind
1
Saya bertanya-tanya, apakah Anda menggunakannya dengan * atau algoritma yang serupa?
dassouki
4
Saya baru saja mengevaluasi keduanya. networkxdapat diinstal melalui pip, sedangkan igraphtidak. Ini membuat igraphlebih sulit untuk digunakan sebagai dependensi dalam setup.pyfile Anda .
exhuma
3
Sebagai pembaruan untuk 2013, saya akan menggunakan networkx hanya tetapi memiliki github dan terlihat paling up to date dari semua opsi dalam jawaban ini dan yang lainnya
Мати Тернер
1
igraph juga memiliki github: github.com/igraph/python-igraph
user_1_1_1
105

Saya ingin pasang pustaka python grafik saya sendiri: graph-tool .

Ini sangat cepat, karena diimplementasikan dalam C ++ dengan Boost Graph Library, dan berisi banyak algoritma dan dokumentasi yang luas.

Tiago Peixoto
sumber
6
alat grafik sangat fantastis.
Sean
5
+1 Untuk alat grafik. Kami telah menggunakannya di lab kami. Ini sangat cepat dibandingkan dengan perpustakaan python lainnya. Selain itu, menggambar dan menampilkan grafik cukup mengagumkan dalam alat grafik. Butuh banyak waktu untuk mengkompilasi!
Dilawar
5
Sayangnya tidak ada dukungan windows :(
Mike Chaliy
2
@TiagoPeixoto Ini terlihat sangat menjanjikan tetapi tidak bisa menggunakannya di windows. Saya terjebak dengan NetworkX, merasa terlalu lambat.
Naman
2
@ColonelPanic Ini adalah FAQ, lihat graph-tool.skewed.de/download : "Jawaban singkatnya adalah tidak bisa dilakukan, karena alat grafik sangat tergantung pada beberapa perpustakaan C ++ (unggul) seperti Boost, yang merupakan tidak dapat diinstal melalui pip. "
Tiago Peixoto
32

Sudahkah Anda melihat python-graph ? Saya belum menggunakannya sendiri, tetapi halaman proyek terlihat menjanjikan.

zweiterlinde
sumber
10

Juga, Anda mungkin ingin melihat NetworkX

lmount
sumber
6

Gunakan Perpustakaan Grafik Peningkatan - Python Bindings .

jujur
sumber
1
Nice one dehmann, aku pergi untuk yang pertama kali (menjadi C ++ programmer oleh perdagangan dan benar-benar mencintai dorongan), tapi takut ini saya: BGL-Python binding tidak lagi dipertahankan <a atas page>
cpatrick
3
Lihat saja alat grafik, ini berbasis bgl dan aktif.
Sean
0

Saya saran kedua zweiterlinde untuk menggunakan python-graph. Saya telah menggunakannya sebagai dasar proyek penelitian berbasis grafik yang sedang saya kerjakan. Perpustakaan ditulis dengan baik, stabil, dan memiliki antarmuka yang baik. Para penulis juga cepat menanggapi pertanyaan dan laporan.

jtguerin
sumber