Bir Sayı Olmayan Sayı Değil değeri boolean olarak yayınlarken, True olur, örn. aşağıdaki gibi.Python/Numpy'de boole olarak yayınlandığında neden "Sayı Değil" değerleri eşit olarak True?
>>> import numpy as np
>>> bool(np.nan)
True
Bu, sezgisel olarak beklediğim şeyin tam tersidir. Bu davranışın altında yatan bir ses ilkesi var mı?
(ben aynı davranış Octave oluşmaya göründüğü gibi olabilir şüpheli.) Bu dil tasarımcıları en yararlı olacağına karar verdik budur çünkü
Benim önsezim: NaN sıfıra eşit değil, bu yüzden boolean'a dönüştürüldüğünde doğrudur. Eğer NaN yanlış ise, o zaman yüzerlerin boole dönüşümü, biri sıfır, biri de NaN için olmak üzere iki kontrol alır. (Ama boyleans olarak haşhaş şamandıranın yorumlanmasının şüpheli bir uygulama olmadığı şüpheliyim.) –
Bu aynı zamanda C'de de (NumPy'nin temel aldığı) durumdur. Standarttan: 'Herhangi bir skaler değer _Bool'e dönüştürüldüğünde, değer 0'a eşitse sonuç 0 olur; aksi halde, sonuç 1'dir. Dipnot 59, NaN'lerin 0'a eşit olmadığını ve böylece 1'e dönüştürdüğünü açıkça belirtir. – jerry