第四章4.2 通用函式:快速的逐元素陣列函式
通用函式也稱為ufunc,是一種在ndarray資料中進行逐元素操作的函式。
常用的一元通用函式:
函式名描述
ads, fabs
逐元素的計算整數、浮點數或者複數的絕對值
sqrt
計算每個元素的平方根(與 arr ** 0.5 相等)
square
計算每個元素的平方(與 arr ** 2 相等)
exp計算每個元素的自然指數值 e x
log, log10, log2
分別對應:自然對數(e為底)、對數10為底、對數2為底
isnan
返回陣列中的元素是否是乙個nan(不是乙個數值),形式為布林數值組
lofical_out
對陣列元素按位取反(與~arr效果一致)
例子如下:
>>
>arr = np.arange(10)
>>
>arr
array([0
,1,2
,3,4
,5,6
,7,8
,9])
#計算平方根
>>
>np.sqrt(arr)
array([0
.,1.
,1.41421356
,1.73205081,2
.,2.23606798
,2.44948974
,2.64575131
,2.82842712,3
.])#是否大於五
>>
>np.logical_not(arr <5)
array(
[false
,false
,false
,false
,false
,true
,true
,true
,true
,true])
>>
>arr >
5array(
[false
,false
,false
,false
,false
,false
,true
,true
,true
,true
])
常用二元通用函式:
add將陣列的對應元素相加
multiply
將陣列的對應元素相乘
maximun, fmax
逐個元素計算最大值,fmax忽略nan
minmum, fmin
逐個元素計算最小值,fmin忽略nan
greater, greater_equal,less, not_equal
逐個元素的比較,返回布林數值組(與數學操作符》, >=, <, !=相等)
logical_and, logical_or, logical_xor
進行逐個元素的邏輯操作(與邏輯操作符&,
>>
>x = np.random.randn(8)
>>
>y = np.random.randn(8)
>>
>x
array(
[0.7806148
,0.82231803,-
0.22952214
,1.76762386,-
1.57489118
,0.19034961
,0.80521737,-
0.91145306])
>>
>y
array([-
1.62060602,-
0.3260956
,1.98282335
,0.52799103,-
0.35916357
,0.60663749,-
1.64518124
,0.45840609])
>>
>np.add(x, y)
array([-
0.83999122
,0.49622243
,1.7533012
,2.29561489,-
1.93405475
,0.7969871,-
0.83996387,-
0.45304696])
>>
>np.maximum(x , y)
array(
[0.7806148
,0.82231803
,1.98282335
,1.76762386,-
0.35916357
,0.60663749
,0.80521737
,0.45840609
])
通用函式接受乙個可選引數out,out是將結果寫入的位置,處理多批大資料時可以提公升效率。
>>
>arr = np.random.randn(8)
>>
>arr
array(
[0.46890746,-
0.86663969
,1.65777646,-
0.84900795,-
0.95264991,-
1.23573652,-
0.83732405
,0.60619662])
>>
>np.sqrt(arr)
array(
[0.68476818
, nan,
1.28754668
, nan, nan,
nan, nan,
0.7785863])
#arr沒有改變
>>
>arr
array(
[0.46890746,-
0.86663969
,1.65777646,-
0.84900795,-
0.95264991,-
1.23573652,-
0.83732405
,0.60619662])
#將結果輸出到arr中
>>
>np.sqrt(arr, out=arr)
array(
[0.68476818
, nan,
1.28754668
, nan, nan,
nan, nan,
0.7785863])
#arr改變了
>>
>arr
array(
[0.68476818
, nan,
1.28754668
, nan, nan,
nan, nan,
0.7785863
])
微生物基因組學1,細菌基因組變化的另乙個主要原因是某些細菌具有從其他生物攝取dna的能力,即所謂水平基因轉移(lgt)。
2,轉化是指細菌從環境中獲取dna的過程,即使沒有特殊的dna吸收基因,某些細菌仍有能力吸收環境中的dna。
3,可自主複製和移動的質粒在無親緣關係的細菌間移動的過程稱為接合。結合性dna可以在種間關係很遠的生物間轉移。
4,有些質粒還可以進行反向轉移,剛剛抵達受體細胞的這些質粒會通過接合轉移反向進入供體細胞,並帶走受體細胞的某些基因。含有這種質粒的細菌,可以像小偷一樣利用反向轉移獲取它們臨近的細菌的基因。
5,寄主細胞錯配修復的特異性,是在親緣關係很遠的細菌間進行同源重組的一道屏障。在重組鏈形成的異源二倍體中,錯配的鹼基越多,重組效率越低。因此,許多由重組介導的機制,侷限於種內或者高度保守的dna區域中。同時,重組序列在重組時也存在丟失的偏向性。這解釋了在許多生物中,假基因被快速的刪除,以及細菌基因組為什麼不能持續增大。
看python不麻煩,可是看微生物基因組我已經有看不懂的地方了…要懷疑自己的專業了都。o(╯□╰)o
利用python進行資料分析
目錄 10 minutes to pandas 翻譯 pandas中loc iloc ix的區別 pandas dropna函式 pandas中dataframe的stack unstack 和pivot 方法的對比 pandas中關於set index和reset index的用法 python匿...
利用python進行資料分析
利用python進行資料分析,需要了解一些基本的方法,比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的資料進行回歸分析,並得出相對精確地結論。這部分需要掌握的知識點如下 回歸分析 線性回歸 邏輯回歸 基本的分類演算法 決策樹 隨機森林 樸素貝葉斯 基本的聚類演算法 k mean...
《利用Python進行資料分析》筆記
之前的筆記一直記在我的印象筆記上,今天突然想到 不如直接記在部落格上,印象筆記只記錄生活上的事,這樣也分工明確一些。同時也能和大家分享,也許可以幫助到別人。由於這個學習筆記系列主要還是用於個人學習總結用,所以會比較凌亂,望大家理解!2017 9 23 p151 pd.dropna thresh 其中...