環境
Python 3.7.4
Juputer Lab 1.1.4
問題
JupyterLab上で書いたcythonの関数が実行できません.
解決策がありましたらご教授いただけると幸いです.
python
1%load_ext Cython
上のマジックコマンドを実行後,以下のコードを実行しました.
python
1%%cython -a 2from libcpp.vector cimport vector 3 4def find_nodes(list original_edges): 5 cdef: 6 int i, j 7 long long node, p, c, comp_p, comp_c 8 vector[long long] strongly_connected_nodes = [] 9 10 for i in range(len(original_edges)): 11 p, c = original_edges[i] 12 for j in range(len(original_edges)): 13 if j == i: 14 continue 15 comp_p, comp_c = original_edges[j] 16 if p == comp_c and c == comp_p: 17 strongly_connected_nodes.push_back(p) 18 strongly_connected_nodes.push_back(c) 19 return strongly_connected_nodes
その後,関数を以下のように実行すると「NameError: name 'find_nodes' is not defined」が発生しました.
python
1s_nodes = find_nodes(edges)
ここで,edgesは[(1, 2), (3, 4) ...]のような配列です.
試しに下記のサンプルコードを実行した場合は問題なく実行されました.
python
1%%cython -n test_cython_code 2def fib(int n): 3 cdef int i 4 cdef double a=0.0, b=1.0 5 6 for i in range(n): 7 a, b = a+b, a 8 return a
python
1print(fib(90))
out: 2.880067194370816e+18
ググり力が足らず自主解決は難しかったです.
お知恵をいただけると幸いです.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/10 13:19