2017-10-20 32 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)'...部分... –