Python配列でmemoryviewを使用するつもりです:
...
cdef double[:, :] a = np.array([[1, 1, 0]])
cdef double[:, :] c = 0,5 * a * a.T
しかし、それはエラーを引き起こしました:
'*' のオペランドの型が無効です (double; double[:, :])
この状況で何ができますか?
Python配列でmemoryviewを使用するつもりです:
...
cdef double[:, :] a = np.array([[1, 1, 0]])
cdef double[:, :] c = 0,5 * a * a.T
しかし、それはエラーを引き起こしました:
'*' のオペランドの型が無効です (double; double[:, :])
この状況で何ができますか?
スカラーと配列の積を取る機能は、numpy 配列の機能 (ブロードキャストを参照) ですが、明らかに Cython のメモリビューの機能ではありません。これを行う方法は、メモリのチャンクをループし、各エントリに目的の値を掛けることです。または、numpy 配列を使用するだけです。
コード例:
cdef double[:, :] c = np.empty((1, 3))
cdef int i
for i in range(3):
c[0, i] = a[0, i] * a[0, i] * 0.5