攝影或3C

Python bool vs numpy.bool_ 布林(True/False); 對於np.bool_ 做乘法等效於and ; 對於np.bool_ 做加法等效於or

Python邏輯運算子: and or xor(^) not:

對布林值做and or xor(^) not有何效果?

numpy.bool_ (尾巴有_):

尾巴無_的np.bool 已廢棄:

DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
np.bool(True)

對於np.bool_ 做加法等效於or: 

1+1=2  ; bool(2)=True 

1+0=1 ; bool(1)=True

0+1=1 ; bool(1)=True

0+0=0 ; bool(0)=False

三種情況皆為True,

只有一種情況False

跟or一樣(只有兩邊都False

才會return False)

bool(任何非0的數字)皆為True

bool() 空list: [],空tuple: (),

空dict: {},空set: set(), 空字串: “”

皆為False:

 

對於python內建的bool做加法

等效於對1, 0做加法:

 

對於np.bool_ 做乘法等效於and:

1*1=1 (布林中1代表True)

1*0=0 (布林中0代表False)

0*1=0 (布林中0代表False)

0*0=0 (布林中0代表False)

三種情況皆為False,

只有一種情況True

跟and一樣(只有兩邊都True

才會return True)

 

對於np.bool_做除法:

1/1=1.0 (沒有換算成bool的True)

0/1=0.0 (沒有換算成bool的False)

1/0=inf 無限大

0/0=nan (Not a Number)

 

python內建的True/False 會出現

ZeroDivisionError: division by zero

npTrue/npTrue =1.0 (float64):

numpy.bool_不支援減法:

 

對於numpy.bool_

not 與 ~同效果:

但對於python內建的bool

not是邏輯運算子

~是對1,0做逐位元運算

推薦hahow線上學習python: https://igrape.net/30afN

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡