2017-10-20 74 views
1

a=np.square創建別名創建pow(x,2)爲numpy的功能

別名同樣,我想爲pow(x,3)函數創建別名

a = np.power(x2=3) 

似乎並沒有工作

什麼解決辦法?

回答

2

您正在查找部分申請,這與別名不同。所以,最簡單的方法是定義一個函數:

>>> import math 
>>> math.pow(3, 2) 
9.0 
>>> def three_to_the(n): return math.pow(3, n) 
... 
>>> three_to_the(2) 
9.0 
>>> 

也有在functools便利功能這一點:

>>> from functools import partial 
>>> power_three = partial(math.pow, 3) 
>>> power_three(2) 
9.0 
>>> power_three(3) 
27.0 

注意,np.squarenp.power(x, 2)的別名,他們只是等同行事,但別名只是具有不同名稱的完全相同的功能(或任何對象)。

+0

調用'partial'是一種簡單的方法,因爲它仍然可以接受包裝函數可以採用的任何參數,而'three_to_the'僅限於用於定義它的單個參數。它甚至不是一個功能;它是一個實例可調用的類。 – chepner

+0

@chepner是的,你是正確的,「partial」實際上是一個返回一個可調用對象的類,但是你可以隨時編寫一個函數,該函數在這方面可以提供與局部相同的功能,並且局部存在主要侷限性:能夠處理*最左邊的位置參數。所以,嘗試執行'def p(x):return math.power(x,2)'...部分... –