14

intCythonで型の空のnumpy配列を作成するにはどうすればよいですか? double または float 配列の場合、次のように機能します。

# make array of size N of type float
cdef np.ndarray[float, ndim=1] myarr = np.empty(N)
# make array of size N of type int
cdef np.ndarray[int, ndim=1] myarr = np.empty(N)

ただし、int で同じことをしようとすると、失敗します。

# this fails
cdef np.ndarray[np.int, ndim=1] myarr = np.empty(N)
# wanted to set first element to be an int
myarr[0] = 5

エラーが発生します:

ValueError: バッファの dtype が一致しません。'int' が必要ですが、'double' が得られました

どうやらnp.empty()double を返すので。私は試した:

cdef np.ndarray[np.int, ndim=1] myarr = np.empty(N, dtype=int)

しかし、同じエラーが発生します。これはどのように行うことができますか?

4

2 に答える 2