2015-04-08 12 views
7

Int, float veya karmaşık sayılarla dizi benzeri verilerden numpy.ndarray oluşturmak zorundayım.numpy.asarray: sonuç dtype'ın sayısal olduğunu nasıl kontrol edebilirim?

numpy.asarray işleviyle bunu yapmayı umuyorum. Sadece basitçe numpy.ndarray(some_unknown_data) çalıştırın ve bakarsak

Ben complex64 veya complex128 karmaşık değerleri dönüştürmek istiyorum, çünkü, bunu bir katı dtype argüman vermek istemiyorum

vb float32 veya float64,

için yüzer Ama sonucunun dtype'ında, verilerin sayısal değil, nesne veya dizge ya da başka bir şey olduğunu nasıl anlayabilirim?

cevap

14

Dizinin dtype'inin np.number alt dtype olup olmadığını kontrol edebilirsiniz. Örneğin:

enter image description here

:

>>> np.issubdtype(np.complex128, np.number) 
True 
>>> np.issubdtype(np.int32, np.number) 
True 
>>> np.issubdtype(np.str_, np.number) 
False 
>>> np.issubdtype('O', np.number) # 'O' is object 
False 

Esasen, bu sadece d_type NumPy dtype hierarchy yılında 'numara' altında olup olmadığını denetler

İlgili konular