nin: 輸入的個數
nout: 輸出的個數
nargs: the number of arguments. data attribute containing the number of arguments the ufunc takes, including optional ones.
ntypes: the number of numerical numpy types - of which there are 18 total - on which the ufunc can operate
types: returns a list with types grouped input->output. data attribute listing the data-type 「domain-range」 groupings the ufunc can deliver. the data-types are given using the character codes
identity: data attribute containing the identity element for the ufunc, if it has one. if it does not, the attribute value is none.
signature: the signature determines how the dimensions of each input/output array are split into core and loop dimensions
小技巧:呼叫ufunc.__doc__可以檢視該函式的文件
print
(np.multiply.__doc__)
以下我們以add.reduce函式為例來講解
用法: reduce(a,axis,initial,keepdims)
詳見 reduce
a是輸入的矩陣
axis是參與運算的維度(預設為0)
例如:
import numpy as np
a=np.arange(9)
.reshape(3,
3)print
(a)# [[0 1 2]
# [3 4 5]
# [6 7 8]]
#如果我們想把矩陣按行(axis=0)進行劃分,把各行相加
b=np.add.
reduce
(a,axis=0)
print
(b)# [ 9 12 15]
我們檢視b的shape,得到的結果是(3,),可見運算完成後,axis=0已經被除去(reduce)了,當然,如果我們希望運算前後ndim不變,也就是不把axis=0給reduce掉,可以用keepdims=1實現
b=np.add.
reduce
(a,axis=
0,keepdims=
1)
如果我們希望最後的解果獲得偏置,也就是使得結果的每個element都加乙個5,可以呼叫initial這個參量
b=np.add.
reduce
(a,axis=
0,keepdims=
1,initial=5)
print
(b)#[[14 17 20]]
類似地,multiply.reduce和add.reduce是十分類似的,唯一的區別是把「相加」變成相乘,對於其他函式的reduce,也是類似的。
同樣,我們以add.accumulate為例
如果我們還是把矩陣的行(axis=0)進行劃分,我們看看add.accumulate得到的結果是什麼
import numpy as np
a=np.arange(9)
.reshape(3,
3)print
(a)# [[0 1 2]
# [3 4 5]
# [6 7 8]]
#如果我們想吧矩陣按行(axis=0)進行劃分,把各行相加
b=np.add.accumulate(a,axis=0)
print
(b)# [[ 0 1 2]第一行
# [ 3 5 7]第一行+第二行
# [ 9 12 15]]第一行+第二行+第三行
我們以add.outer為例
import numpy as np
a=np.array([1
,2,3
])b=np.array([4
,5,6
])print
(np.add.outer(a,b)
)# [[5 6 7]
# [6 7 8]
# [7 8 9]]
我們發現,a中的1被替換成了1+[4,5,6],2被替換成了2+[4,5,6],3被替換成了3+[4,5,6]
總結:add.outer(a,b)就相當於把a中的每個element替換為這個element與b的和,結果的shape為(a.shape,b.shape)
numpy的函式物件ufunc詳解
ufunc物件是numpy的兩大基本物件之一,另乙個是array。ufunc是universal function object的縮寫。在python裡面,一切皆為物件,包括我們的函式,而numpy裡面的函式是ufunc物件的例項,如下所示 type np.add 返回的是 即ufunc物件 既然是...
1 Numpy的通用函式 ufunc
元素級函式 一元函式 對陣列中的每個元素進行運算 陣列級函式 統計函式,像聚合函式 例如 求和 求平均 矩陣運算 隨機生成函式 常用一元通用函式 陣列級函式 函式名作用 例子結果 np.abs sum mean std var 計算絕對值 求和 求平均值 求標準差 方差 arr np.array 1...
Python基礎之Numpy的基本用法詳解
a np.array 1,2,3,4,5,6,7,8,9,10,11 一維陣列 b np.array 1,2 3,4 二維陣列 numpy.arange start,stop,step,dtype start預設0,step預設1 c np.arange 0,10,1,dtype int np.ar...