8

紛らわしいのは、配列を作成したい場合に使用することです

chunk = np.array ( [[94.,3.],[44.,4.]], dtype=np.float64)

ただし、buffer参照内で型を定義する場合は、使用します

cdef func1 (np.ndarray[np.float64_t, ndim=2] A):

    print A 

と の違いに注意してnp.float64くださいnp.float64_t

私の推測

type identifieraは、Cython C のようなtypedef構文で明示的に作成されたものであると推測しています

ctypedef np.float64_t dtype_t

しかし、numpytypeは単に Python の<type 'type'>type です。

>>> type ( np.float64)
<type 'type'>

sに関する Numpy のドキュメントdtypeは役に立ちません。http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

4

1 に答える 1

7

cython コードでは、次のようにします。

import numpy as np
cimport numpy as np

最初の行は numpy モジュールを Python 空間にインポートしますが、2 行目は numpy.pxd を cython 空間にインクルードするだけです。

cython のインストール フォルダーに numpy.pxd があります。float64_t を次のように定義します。

ctypedef double       npy_float64
ctypedef npy_float64    float64_t
于 2012-06-13T03:34:49.720 に答える