numpy取反操作符和Boolean類型與0-1表示方式
numpy取反操作符和Boolean類型與0-1表示
numpy中取反運算符~
可以將Boolean類型值取反,這在使用boolean類型數(shù)組選擇數(shù)組中固定元素時十分有用。
import numpy as np a=np.array([0,0,1,1]).astype("bool") b=np.arange(4) print("b\n",b) # b # [0 1 2 3] c=b[a] print("c\n",c) # c # [2 3] print("~a\n",~a) # ~a # [ True True False False] c_=b[~a] print("c_\n",c_) # c_ # [0 1]
numpy中的0-1表示和Boolean類型具有一致性
loser_winner = np.array([1, 0, 0, 1, 0, 1]) if [0, 0, 1] == [False, False, True]: print("1") else: print("0") # 1 print(~loser_winner.astype(np.bool)) # [ True False False False True False] mutation_idx = [True, True, True, False, False, False] loser_winner[mutation_idx] = ~loser_winner[mutation_idx].astype(np.bool) print("loser_winner", loser_winner, "loser_winner[mutation_idx]", loser_winner[mutation_idx]) # loser_winner [0 1 1 1 0 1] loser_winner[mutation_idx] [0 1 1]
Python按位取反運算符~解析
Python的按位取反運算符~的解釋是:
對數(shù)據(jù)的每個二進制位取反,即把1變?yōu)?,把0變?yōu)?。~x 類似于 -x-1。
如a =61= 0b0011 1101,按位取反后的結(jié)果是:0b1100 0010=194,
可是Python中運算結(jié)果并非如此,
輸出的~a的結(jié)果是:~a=62
這是怎么回事呢?
計算機中的符號數(shù)有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數(shù)值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數(shù)值位,三種表示方法各不相同。
在計算機系統(tǒng)中,數(shù)值一律用補碼來表示和存儲。原因在于,使用補碼,可以將符號位和數(shù)值域統(tǒng)一處理;同時,加法和減法也可以統(tǒng)一處理。
另外,求負整數(shù)的補碼,將其對應(yīng)正數(shù)二進制原碼表示所有位取反(包括符號位,0變1,1變0)后加1
這里用括號來表示符號位,0表示正數(shù),1表示負數(shù)。
- a=61=(0)0b0011 1101,正數(shù)補碼
- ~a=(1)0b1100 0010,負數(shù)補碼,符號位為1表示這個代表一個負數(shù),我們要知道其表示的數(shù)值。
對應(yīng)負數(shù)原碼到補碼的轉(zhuǎn)換過程:
(1)數(shù)值部分先減一:0b1100 0001
(2)數(shù)值部分取反:0b0011 1110,數(shù)值部分62
加上符號則~a =-62= (1)0b0011 1110,負數(shù)原碼
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談python 四種數(shù)值類型(int,long,float,complex)
下面小編就為大家?guī)硪黄獪\談python 四種數(shù)值類型(int,long,float,complex)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06python實現(xiàn)簡單學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了python簡單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04matplotlib實現(xiàn)自定義散點形狀marker的3種方法
本文主要介紹了matplotlib實現(xiàn)自定義散點形狀marker的3種方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10python圖片處理庫Pillow實現(xiàn)簡單PS功能
Python 屆處理圖片最強的庫是 PIL(Python Image Library),但由于該庫只支持 2.x 版本,在此基礎(chǔ)上做了擴展,出了一個兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫就是Pillow2021-11-11忘記ftp密碼使用python ftplib庫暴力破解密碼的方法示例
忘記ftp密碼了怎么辦?下面介紹一個使用python ftplib庫暴力破解密碼的方法,大家參考使用吧2014-01-01