やりたい
cdef int mom2calc[3]
mom2calc[0] = 1
mom2calc[1] = 2
mom2calc[2] = 3
よりコンパクトな方法で。に似たもの
cdef int mom2calc[3] = [1, 2, 3]
これは無効なCython構文です。
注意:
cdef int* mom2calc = [1, 2, 3]
(自動的に)メモリビューに変換できないため、これはオプションではありません。
cdef int mom2calc[3]
mom2calc[:] = [1, 2, 3]
これは、生のポインタ(境界はチェックされませんが)、メモリビュー、固定サイズの配列で機能します。それは1次元でのみ機能しますが、それで十分なことがよくあります。
cdef int mom2calc[3][3]
mom2calc[0][:] = [1, 2, 3]
mom2calc[1][:] = [4, 5, 6]
mom2calc[2][:] = [7, 8, 9]
cdef int[3] mom2calc = [1, 2, 3]
これは、それを行う方法です。 CythonテストでのCアレイの初期化の例は、 ここ 。