我有这个按预期工作的功能
import numpy as np
def my_fun(X, Weights = None):
if Weights is None:
np.random.normal(0,1,1)
else:
Weights + 1
因此我可以使用my_fun(my_X)或my_fun(my_X,Weights = my_weights)调用my_fun,其中my_weights是一个数组。
但是,我需要在my_fun中包含第三个选项,理想情况下我想将该参数作为字符串传递。像这样的东西。
import numpy as np
def my_fun(X, Weights = None):
if Weights is None:
np.random.normal(0,1,1)
elif Weights == 'My_string':
np.random.beta(1,1,1)
else:
Weights + 1
如果我尝试将my_fun称为my_fun(my_X,Weights ='a'),则会出现以下错误: FutureWarning:元素比较失败;返回标量......
有关如何重塑my_fun的想法吗?
答案 0 :(得分:0)
首先,我没有看到你X
的目的,你从来没有在函数中使用它。为什么要发送呢?
您的功能中还需要return
。你想要什么回报?目前尚不清楚。也许就是这样。
def my_fun(X, Weights = None):
if Weights is None:
X = np.random.normal(0,1,1)
elif Weights == 'My_string':
X = np.random.beta(1,1,1)
else:
Weights + 1
return Weights,X
print( my_fun([1,2,3],Weights = 'My_string') )