我试图通过使用'_'来忽略参数和与其链接的输出:
data_scaled, _, scaler = scaling(sequence_arr,*_)
函数是:
def scaling(x, y):
x = x.reshape(x.shape[0], x.shape[1])
y = y.reshape(y.shape[0], y.shape[1])
scale = MinMaxScaler(feature_range=(-1, 1))
scale = scale.fit(x)
x_scaled = scale.transform(x)
y_scaled = scale.transform(y)
return x_scaled, y_scaled, scale
我得到了错误:
NameError: name '_' is not defined
答案 0 :(得分:3)
您必须将y
设置为可选,然后从那里开始。
def scaling(x, y=None):
x = x.reshape(x.shape[0], x.shape[1])
scale = MinMaxScaler(feature_range=(-1, 1))
scale = scale.fit(x)
x_scaled = scale.transform(x)
if y is not None:
y = y.reshape(y.shape[0], y.shape[1])
y_scaled = scale.transform(y)
else:
y_scaled = None
return x_scaled, y_scaled, scale
然后您可以像这样称呼
data_scaled, _, scaler = scaling(sequence_arr)
答案 1 :(得分:0)
您要在此处打开_
的包装:
data_scaled, _, scaler = scaling(sequence_arr,*_)
打开包装仅适用于现有包装。
您只能使用_
进行分配-习惯性地忽略该值。
要忽略scaling
的额外参数,您需要更改函数本身。
def scaling(x, y, *args, **kwargs):
惯用的pythion函数定义,将任何额外的位置参数放入args
中并将关键字参数放入kwargs
答案 2 :(得分:0)
由于未定义*_
变量,因此在调用中使用_
会导致错误。分配中的_
正常,因为已创建变量。
通常,您不能“忽略”该函数期望的参数,除非它具有默认值。您至少应该传递类似None
的内容:
# x = y =
data_scaled, _, scaler = scaling(sequence_arr, None)
但是,在您的情况下,这会引发错误,因为在reshape
对象上调用了None
。