2016-04-11 12 views
-1

Foll var. Numpy kod: BuradaSayısal dizide maskeleme değerleri

mask_cntr = np.copy(map_ccodes) 
mask_cntr[mask_cntr == cntr] = 1.0 
mask_cntr[mask_cntr != 1.0] = 0.0 

, ben map_ccodesmask_cntr 2D dizi kopyalama ve 0.0 için 1.0 bu dizide cntr eşit değerleri ve diğerlerini atama ediyorum.

Bunu numpy'de yapmak için daha hızlı ve daha pythonik bir yolu var mı?

cevap

2

np.where işlevi olan durumuna göre bir çıkış koşullarını kabul eder ve döner ... her yerde map_ccodes==cntr argüman kullanabilirsiniz Doğru veya Yanlış:

np.where(mask_cntr == cntr, 1.0, 0.0) 
0

Ben senin kodundan cntr == 1 olduğunu varsayıyorum

mask_cntr = 1.0*(map_ccodes==cntr) 

deneyin?

Neden ayrı bir maskeye ihtiyacınız var? Her zaman