cythonを実装しています
以下のようなエラーが出て困っています
どこを変えればいいでしょうか
追記:
変数として入力している値がおかしいと思って
値のtypeを見て、「sympy.core…」というのが
どういう値かわからなかったのですが
とりあえずfloatにしてみましたが
それでもなりませんでした
追記2:
def beta(region_all, np.ndarray[DTYPE_t, ndim=1] region_user, float r_user, float r_all):
このようにすると一応、なるにはなりましたが
なぜなったのかと、なぜできなかったのかがわかりません
python
1以下pythonコード 2sb = bet.beta(r_all, r_user[User.index((w.split(":|:")[0]))], r_user[User.index((w.split(":|:")[0]))][int(key_region)], r_all[int(key_region)]) 3 4以下 5cythonコード 6from math import exp 7cimport numpy as np 8ctypedef np.float64_t DTYPE_t 9 10def beta(np.ndarray[DTYPE_t, ndim=1] region_all, np.ndarray[DTYPE_t, ndim=1] region_user, float r_user, float r_all): 11 cdef DTYPE_t b = exp(r_all + r_user) / (sum([exp(rall + ruser) for rall, ruser in zip(region_all, region_user)])) 12 return b 13 14以下 その他の変数 15r_all 16[0.328980887394616 0 0.364106893790756] 17<class 'numpy.ndarray'> 18r_user[0] 19[ 0. 0. 1.5654775] 20<class 'numpy.ndarray'> 21r_user[0][0] 220.0 23<class 'numpy.float64'> 24r_all[0] 250.328980887394616 26<class 'sympy.core.numbers.Float'> 27----------------------------------------------------------- 28エラー内容 29ValueError: Buffer dtype mismatch, expected 'DTYPE_t' but got Python object 30
あなたの回答
tips
プレビュー