NetworKit
NetworKit은 고성능 네트워크 분석을위한 성장하는 오픈 소스 툴킷입니다. 그 목적은 수천에서 수십억 개의 에지 크기 범위의 대규모 네트워크 분석을위한 도구를 제공하는 것입니다. 이를 위해 효율적인 그래프 알고리즘을 구현하며, 대부분은 멀티 코어 아키텍처를 활용하기 위해 병렬로 사용됩니다. 이는 차수 시퀀스, 클러스터링 계수 및 중심 성과 같은 네트워크 분석의 표준 측정 값을 계산하기위한 것입니다. 이 점에서 NetworKit은 병렬성과 확장성에 중점을두고 있지만 NetworkX와 같은 패키지와 비슷합니다. NetworKit은 또한 알고리즘 엔지니어링을위한 테스트 베드이며 특히 커뮤니티 탐지 분야에서 최근 발표 된 연구에서 나온 몇 가지 새로운 알고리즘을 포함합니다.
NetworKit은 Python 모듈입니다. 성능 인식 알고리즘은 C++ (공유 메모리 병렬 처리를 위해 종종 OpenMP 사용)로 작성되고 Cython 툴체인을 통해 Python에 노출됩니다. Python은 데이터 분석을위한 풍부한 도구 환경과 대화식으로 작업 할 수있는 능력을 제공합니다. 또한 NetworKit의 코어를 구축하여 기본 라이브러리로 사용할 수 있습니다.
Graph 직접 생성
import networkit as nk
G = nk.Graph(5, False, True)
print(G.numberOfNodes(), G.numberOfEdges())
print(G.isWeighted(), G.isDirected())
G.addEdge(1, 3)
G.addEdge(2, 4)
G.addEdge(1, 2)
G.addEdge(3, 4)
G.addEdge(2, 3)
G.addEdge(4, 0)
G.addNode()
G.addEdge(0, 5)
nk.overview(G)
for u in G.iterNodes():
print(u)
Troubleshooting
pyenv: ninja: command not found
설치 도중 다음과 같은 에러가 출력될 수 있다.
...
initializing NetworKit compilation with: 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-install-j5ycf86a/networkit_46f7b29978854c278177950b8d4195ae/build/lib.macosx-10.14-x86_64-3.7 -DCMAKE_CXX_COMPILER=c++ -DNETWORKIT_FLATINSTALL=ON -DNETWORKIT_PYTHON=/Users/yourname/.pyenv/versions/3.7.7/Python.framework/Versions/3.7/include/python3.7m -DNETWORKIT_PYTHON_SOABI=cpython-37m-darwin -GNinja /private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-install-j5ycf86a/networkit_46f7b29978854c278177950b8d4195ae'
CMake Error at CMakeLists.txt:2 (project):
Running
'/Users/yourname/.pyenv/shims/ninja' '--version'
failed with:
pyenv: ninja: command not found
The `ninja' command exists in these Python versions:
3.6.1/envs/opy-yourname-3.6.1
3.6.8/envs/opy-yourname-3.6.8
opy-yourname-3.6.1
opy-yourname-3.6.8
Note: See 'pyenv help global' for tips on allowing both
python2 and python3 to be found.
-- Configuring incomplete, errors occurred!
See also "/private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-install-j5ycf86a/networkit_46f7b29978854c278177950b8d4195ae/build/build_python/CMakeFiles/CMakeOutput.log".
cmake returned an error, exiting setup.py
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/yourname/.pyenv/versions/3.7.7/envs/opy-yourname-3.7.7/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-install-j5ycf86a/networkit_46f7b29978854c278177950b8d4195ae/setup.py'"'"'; __file__='"'"'/private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-install-j5ycf86a/networkit_46f7b29978854c278177950b8d4195ae/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/6v/598t63jj15lbcn_nq9nm12ww0000gn/T/pip-record-r49k1djw/install-record.txt --single-version-externally-managed --compile --install-headers /Users/yourname/.pyenv/versions/3.7.7/envs/opy-yourname-3.7.7/include/site/python3.7/networkit Check the logs for full command output.
다음과 같이 ninja를 설치.
See also
- Graph theory
- NetworkX
- igraph
- graph-tool - (Boost Graph Library 기반)
- Graphillion
- NetworKit
- SNAP for Python (Snap.py)