前提・実現したいこと
cythonで、配列の中にnumpyのndarrayが入った、次のような変数をコンパイルしたいです。
[array([[4.84491686e-08, 9.97148999e-01, 1.30226804e-03, ..., 2.34065851e-08, 3.55600949e-08, 8.29578395e-11], ..., [2.48330784e-14, 1.13642053e-06, 8.07854730e-11, ..., 1.68682370e-09, 6.00072085e-12, 8.09837433e-17]])]
shapeはこんな感じ。
[(194, 30), (349, 30), (246, 30), (356, 30), ..., (1016, 30), (218, 30)]
発生している問題・エラーメッセージ
utils.pyx:32:56: Expected ']', found '='
該当のソースコード
cython
1vector[np.ndarray[DTYPE_t, ndim=2]]
cython
1np.ndarray[DTYPE_t, ndim=2][:]
上の両方とも、うまくいきませんでした。
なにかうまい方法があれば、ご教授いただきたいです。
サンプルコード
import numpy as np cimport numpy as np from libcpp.vector cimport vector DTYPE = np.float32 ctypedef np.float32_t DTYPE_t def calc_n(int M, int K, vector[np.ndarray[DTYPE_t, ndim=2]] Pi, vector[np.ndarray[DTYPE_t, ndim=2]] Freqs): cdef np.ndarray[DTYPE_t, ndim= 2] ni_k cdef np.ndarray[DTYPE_t, ndim= 1] n__k cdef int i ni_k = np.empty((M, K), dtype=np.float32) for i in range(M): ni_k[i] = np.sum(Pi[i] * Freqs[i][:, None], axis=0) n__k = np.sum(ni_k, axis=0) return ni_k, n__k
あなたの回答
tips
プレビュー