아무래도, 연구주제로 삼게될 것 같은 'Network Analysis'.

흥미로운 연구주제이고 좋은 기회인 것 같아서,, 일단 뽀짝거리는 수준으로 공부해보려고 한다

 

첫 스텝으로 Python 라이브러리 중 네트워크 분석에 상당히 유용한 'NetworkX'를 설치하고 좀 뽀짝거려봤다

 

Python 라이브러리를 설치하는 방법 중 가장 대중적으로(?) 알려진 게 명령어로 설치하는 방법인 것 같다

pip install 어쩌고...

근데 이게 나한텐 좀 어렵게.. 느껴져서 보통 파이참을 이용하는 편이다 ^^

이렇게 자꾸 편한 것에 맛들려도 되는진 모르겠으나,,

 

암턴 파이참에서 손쉽게 NetworkX를 설치할 수 있었다.

찾으니 역시 바로 나와서 바로 설치 ㅋㅋㅋㅋㅋㅋ 파이참 최고

 

그 다음, 몇 가지 예제들로 networkx를 실습해봤다

 

1) network 생성하기

2) edges, link 만들기 (edge만 만들어도 link가 생성된다)

3) 만든 edges 불러보기

4) edges data 불러보기

5) shortest path 찾아보기

import networkx as nx

#1)
G = nx.Graph()
#2)
G.add_edge('a', 'b', weight=1.0)
G.add_edge('b', 'c', weight=1.5)
G.add_edge('a', 'c', weight=3.0)
G.add_edge('c', 'd', weight=2.3)

#3)
print(G.edges)
#4)
print(G.get_edge_data('a', 'c'))
#5)
print(nx.shortest_path(G, 'a','d'))

뽀짝거리는 수준의 파이썬 실습은 일단 제쳐두고,, 이 NetworkX의 엄청난 유용성에 대해 말해보자면

그거슨 바로 "Shortest Path Algorithm"이 내장되어 있다는 점이다.

 

석사 재학 시절 Shortest Path Algorithm을 기반으로 공항 내 지상조업장비들의 교통량을 분석하는 시뮬레이션 프로그램(?)을 개발했었는데 그 당시 이 알고리즘을 매트랩으로 구현하는데만..... 어...

6개월 걸렸나...?

그것도 완벽하지는 않았던 기억 ㅠㅠ

 

그런데 이 라이브러리에서는 Dijkstra 기반의 알고리즘을 미리 제공해주는데다가

weight나 속성값 등을 부여할 수도 있다;;;

아 참고로 Dijkstra 알고리즘만 제공된다 (weight 값이 항상 양수여야 함)

 

예제 하나를 만들어서 풀어보면 더 쉽게 늘 수 있을 것 같은데

뭘 해보지...

고민 좀 해봐야겠당

'Development > Python' 카테고리의 다른 글

크롤링 기초 : BeautifulSoup  (0) 2022.07.26
크롤링 기초: HTML 문서의 구성  (0) 2022.07.26
class, 객체, try& except, package  (0) 2022.07.26
크롤링 : select, find, attribute error  (0) 2022.05.17

+ Recent posts