2016-01-04 17 views
6

Nie do końca rozumiem, jaka jest różnica między numpy. {Nazwa_tabletu}, numpy.npy_ {nazwa_tabela} i numpy. {Nazwa_tabety} _t gdy używam ich z kodu Cythona?Typy Numpy dla użytkowników Cythona

czyli jaka jest różnica w tych typach:

# test.pyx 
cimport numpy as np 
import numpy as np 

np.float32 
np.npy_float32 
np.float32_t 

jak rozumiem teraz: Pierwszy typ jest dynamiczny, tzn Cython wygeneruje jakiś kod do wykrywania wielkości tego typu w czasie wykonywania. Dwa inne typy są statyczne, tzn. Kod, który z nich korzysta, zostanie skompilowany ze wstępnie zdefiniowanymi rozmiarami każdego typu. Proszę mnie poprawić.

Dodatkowe Informacje: https://docs.scipy.org/doc/numpy/reference/c-api.dtype.html#c-type-names

Odpowiedz

6

np.float32 jest TypeDescriptor NumPy, która jest obiektem Pythona, który można przeszukiwać i przekazywane do NumPy skonstruować tablice podobnie jak w Pythonie.

np.npy_float32 to typ C, który może być używany wszędzie tam, gdzie potrzebny jest typ C, np.

cdef np.npy_float32 x = 1.902 
cdef np.ndarray[np.npy_float32, ndim=2] A = np.zeros((3, 4), dtype=np.float32) 

np.float32_t jest po prostu typedef z np.npy_float32, które mogą być używane jako skrót.

Powiązane problemy