我必须使这段代码有效。
mean = []
def func():
mean = np.mean(a,axis=0);
print mean
但是在打印mean
时,我得到了输出[]
。如何将np.mean
分配给mean
?
PS:我是numpy的初学者,所以我对变量赋值如何在这里工作很困惑。
答案 0 :(得分:2)
mean
内的func
与外部的mean
不同。在mean = ...
内分配func
时,您正在func
的本地范围中创建新变量 - 此{{1 }}与全局范围中定义的外部mean
完全不同。此外,具有相同名称的局部变量隐藏了全局变量,因此最终不会触及全局变量。
基本修复方法是在mean
内将mean
声明为global
变量并使用func
参数:
out
但是,为了维护代码,我建议不使用mean = np.empty(...)
def func(a):
global mean
np.mean(a, axis=0, out=mean) # you don't need the trailing semicolon either
变量,当你可以避免它时。而是将global
作为参数传递给a
并返回结果:
func
我推荐前一种方法的唯一事件是,它会更好地表现性能。然而,对于像计算均值这样简单的事情,为什么甚至首先声明一个函数?
答案 1 :(得分:1)
你应该从你的职能中return
def func():
return np.mean(a,axis=0);
然后您可以指定返回值
mean = func()