cython.view.array の使い方のメモ
■cython プログラム(foo.pyx)
array(...) で float、double の配列を使いたいときには、
array(..., itemsize=sizeof(float), format='f')
array(..., itemsize=sizeof(double), format='d')
とします。
■puthon プログラム(呼び出し側)
■cython プログラム(foo.pyx)
from import cython.view cimport array def create_array(int row, int col): arr = array(shape=(row, col), itemsize=sizeof(int), format='i') for r in range(0, row): for c in range(0, col): arr[r][c] = r + c def sum_array(int [:, :] arr): cdef int row = arr.shape[0] cdef int col = arr.shape[1] cdef int r, c cdef int sum = 0 for r in range(0, row): for c in range(0, col): sum += arr[r][c] return sum
array(...) で float、double の配列を使いたいときには、
array(..., itemsize=sizeof(float), format='f')
array(..., itemsize=sizeof(double), format='d')
とします。
■puthon プログラム(呼び出し側)
import foo arr = foo.create_array(1000, 1000) sum = foo.sum_array(arr)