ग्राफ पर क्वेरीज़
अब जब आप ग्राफ की कुछ बुनियादी विशेषताएँ जान चुके हैं और उसके कुछ हिस्सों को विज़ुअलाइज़ करने के लिए NetworkX की ड्रॉइंग सुविधाओं का अभ्यास कर चुके हैं, तो समय है कि आप देखें कि नोड्स और एजेज़ के लिए इसे कैसे क्वेरी किया जा सकता है। खास तौर पर, आप "nodes of interest" और "edges of interest" ढूँढेंगे। ऐसा करने के लिए, आप वीडियो में एरिक द्वारा समझाई गई .nodes() और .edges() मेथड्स का उपयोग करेंगे। .nodes() मेथड एक Node view iterable लौटाती है, जबकि .edges() मेथड एक edge view iterable लौटाती है, जिसमें प्रत्येक टपल उस एज पर मौजूद नोड्स दिखाता है। याद रखें कि इन मेथड्स में data=True कीवर्ड आर्ग्युमेंट पास करने पर नोड्स और एजेज़ से जुड़ा संबंधित मेटाडेटा भी प्राप्त हो जाता है।
आप एक-लाइन में प्रभावी क्वेरी बनाने के लिए list comprehensions लिखेंगे। list comprehensions का रिफ्रेशर चाहिए तो DataCamp के Python Data Science Toolbox कोर्स के Part 2 को देखें। list comprehension का फ़ॉर्मूला यह है:
[ output expression for iterator variable in iterable if predicate expression ].
आपको _iterable_ और _predicate expression_ भरना है। अपना समाधान सबमिट करने से पहले, IPython Shell में ग्राफ़ एक्सप्लोर करके अपना उत्तर प्रोटोटाइप करने के लिए स्वतंत्र हैं।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में नेटवर्क विश्लेषण का परिचय
अभ्यास निर्देश
- एक list comprehension का उपयोग करके ग्राफ
Tसे उन nodes की सूची प्राप्त करें जिनका'occupation'लेबल'scientist'है।- output expression
nऔर iterator variablesnऔरdआपके लिए दिए गए हैं। आपका कार्य iterable और conditional expression भरना है। - नोड्स एक्सेस करने के लिए
Tकी.nodes()मेथड का उपयोग करें, और नोड्स के मेटाडेटा प्राप्त करने हेतुdata=Trueअवश्य निर्दिष्ट करें। - iterator वैरिएबल
dएक डिक्शनरी है। यहाँ रुचि की कुंजी'occupation'और रुचि का मान'scientist'है।
- output expression
- एक list comprehension का उपयोग करके ग्राफ
Tसे उन edges की सूची प्राप्त करें जो कम से कम 6 साल पहले बन चुके थे, यानी 1 Jan 2010 से पहले के हैं।- आपका कार्य फिर से iterable और conditional expression भरना है।
- एजेज़ एक्सेस करने के लिए
Tकी.edges()मेथड का उपयोग करें। एजेज़ का मेटाडेटा भी अवश्य प्राप्त करें। - तारीखें मेटाडेटा डिक्शनरी
dमेंdatetime.dateऑब्जेक्ट्स के रूप में स्टोर हैं, और कुंजी'date'के अंतर्गत मिलेंगी। उदाहरण के लिए, 1 Jan 2009 को एक्सेस करने के लिए डिक्शनरी वैल्यूdate(2009, 1, 1)होगी।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Use a list comprehension to get the nodes of interest: noi
noi = [n for n, d in ____ if d['____'] == '____']
# Use a list comprehension to get the edges of interest: eoi
eoi = [(u, v) for u, v, d in ____ if ____ < ____]