içinde numpy/scipy kullanarak dizilerde -Inf değerlerini yok sayma Ben günlüğü almak ve günlüğü almadan önce negatif olan girişleri yok saymak için bir NxM dizilim var. Negatif girdilerin günlüğünü aldığımda, -Inf döndürür, bu nedenle sonuç olarak bazı -Inf değerlerine sahip bir matrisim olur. Sonra bu matrisin sütunlarını toplamak istiyorum, ama -Inf değerlerini göz ardı etmek istiyorum - bunu nasıl yapabilirim? ÖrneğinPython
,
mylogarray = log(myarray)
# take sum, but ignore -Inf?
sum(mylogarray, 0)
Ben nansum olduğunu biliyorum ve ben, infsum gibi bir şey eşdeğer gerekir.
Teşekkürler.
lütfen bunu genişletebilir misiniz? Ben örneği anlamıyorum. Yukarıdaki maskelenen diziyi nasıl başlattınız? – user248237dfsf
@ user248237 - "numpy.ma.log" vb. Işlevler otomatik olarak "inf" veya "nan" ile sonuçlanan her şeyin maskelenmesi durumunda maskelenmiş bir dizi oluşturacaktır. Bunun yerine bunu yapabilirsiniz böylece bu olsa da, biraz daha az açıktır: 'a = np.ma.masked_where (a == np.inf a)' ve ardından sadece bunu 'b = np.log (a)' (veya başka bir işlev). Alternatif olarak, maskeli diziler önlemek ve sadece 'np.log (a [a! = Np.inf]) yapmak. Sum()' (Sen, bu 'filter' tabanlı çok daha temiz ve daha hızlı boole diziler tarafından endeks bulunuyor olabilir answer.) –
@ user248237 Maskeli diziyi açıkça başlatmamıştım. 'a' sadece normal, maskelenmemiş bir dizidir. ma.log, (gerçek) logaritmanın tanımsız olduğu tüm değerleri maskeler. Daha sonra ortaya çıkan maskelenen dizi 'b', maskelenmiş girişler orada yokmuş gibi kabaca muamele edilir. – Philipp