ویرگول
ورودثبت نام
علی یوسفیان
علی یوسفیان
خواندن ۲ دقیقه·۳ سال پیش

Netwrokx (part 1)

در این بخش با کتابخانه Networkx سعی میکنم کار با گراف و معیار های گرافی را به صورت عملی آموزش دهم خب کدهای که نمایش میدهم و اجرا میکنم روی گیت‌هاب من قرار داره میتوند دانلود و استفاده کنید.

داکیومنت کامل این کتابخانه بر روی سایتش قرار داره پس اگه حوصله متن من رو نداشتید میتونید برید و اونجا بخونید :))


برای نصب اول پایتون رو روی سیستم خودوتون نصب کنید بعدش پیشنهاد میکنم jupyter notebook را نصب کنید. بعدش با استفاده از پیپ pip با دستور زیر نصب کنید


pip install networkx

برای اینکه مطمین شی که نصب شده در محیط ترمینال بنویس

pytest networkx

خب اگر قسمت دوم بدون خطا اجرا شد شما به خوبی نصب کردید و میتواند استفاده کنید ولی حواستون باشه من چند کتابخونه دیگه هم اضافه کردم مانند pandas , matplot شما هم نصب کنید در ادامه لازم داریم.

مرحله اول ایجاد یک گراف خالی است یا instance خالی برای ساختار گرافی مون :

G = nx.Graph()

گراف خالی G ساخته می‌شود هانطور که توضیح دادم گراف از گره یا نود و یال‌های متصل شده به وسیله این نود‌ها ساخته می‌شود پس برای این که گراف خالی G را معرفی کنیم و قابل پردازش کنیم نیاز است تا گرهای گراف و یال‌های این گراف را تعریف کنیم.

گره یا نود

نمودار G را می توان به روش های مختلف رشد داد. NetworkX شامل بسیاری از توابع و امکانات مولد گراف برای خواندن و نوشتن نمودارها در فرمت های مختلف است. برای شروع ، ما دستکاری های ساده را بررسی می کنیم. می توانید یک گره را در یک زمان اضافه کنید. مانند مثال زیر که گره ۱ را به گراف G اضافه می‌کند.

G.add_node(1)

اگر میخواهید چندین گره همزمان اضافه کنید از کد زیر استفاده کنید. به صورت آرایه ای از گره‌ها

G.add_nodes_from([2, 3])

دستور G.nodes لیستی از گره‌های گراف G را نمایش می‌دهد.

G.nodes output:NodeView((1, 2, 3, 4))


يال‌ها (edge)

G.add_edge(1,2)

یالی بدون وزن بین دو گره ۱و ۲ برقرار میکند.

برای اینکه اطلاعاتی اولیه از گراف G ببینید کافی با دستور :

print(nx.info(G)) output: Name: Type: Graph Number of nodes: 4 Number of edges: 1 Average degree: 0.5000

اگر خواستید نمایشی اولیه از گرافی که ساختید داشته باشید کافی است دستور

nx.draw(G,with_labels=True)

را بزنید.

خب سعی می‌کنم این سری از آموزش را تکمیل کنم

networkxcomplex networkpythonjupyter notebook
همیشه برنامه‌نویس ولی یه برنامه‌نویس متن باز عاشق پایتون جنگو و تحلیل داده
شاید از این پست‌ها خوشتان بیاید