4

Python配列でmemoryviewを使用するつもりです:

...
cdef double[:, :] a = np.array([[1, 1, 0]])
cdef double[:, :] c = 0,5 * a * a.T

しかし、それはエラーを引き起こしました:

'*' のオペランドの型が無効です (double; double[:, :])

この状況で何ができますか?

4

1 に答える 1

5

スカラーと配列の積を取る機能は、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
于 2013-11-25T00:35:12.617 に答える