def featureScaling(arr):
arr= [x1,x2,x3]
y=(x2-x1)/(x3-x1)
return y
data = [115, 140, 175]
print (featureScaling(data))
我想在数组上定义一个函数,该函数将前两项的差除以第三项和第一项的差,但是我不断收到一个错误,指出未定义x1。我是编码新手,可以真正使用帮助。
答案 0 :(得分:2)
arr是函数中的参数,因此无需在函数主体中定义它。第arr= [x1,x2,x3]
行试图重新定义您传入的数组,这就是为什么未定义x1,x2和x3的原因。您需要根据数组定义这3个项目,而不是相反。
答案 1 :(得分:2)
您的输入变量在函数范围内定义为arr
,但是随后您将arr
重新定义为arr=[x1,x2,x3]
,但是将x1
,{{1} }和x2
未定义。相反,您可以像这样使用索引并重新定义函数:
x3
这将返回:
def featureScaling(arr):
return (arr[1] - arr[0]) / (arr[2] - arr[0])
data = [115, 140, 175]
print(featureScaling(data))
答案 2 :(得分:0)
我想这会起作用。
对于Python中列表的从零开始的索引,您可以通过x [0]表示第一个元素,x [1]表示第二个元素,以x表示列表x的元素,依此类推。
由于代码中x1 x2 x3的值没有值,因此未定义它并生成错误。
def featureScaling(arr):
y=(arr[1]-arr[0])/(arr[2]-arr[0])
return y
data = [115, 140, 175]
print (featureScaling(data))
答案 3 :(得分:0)
使用列表索引概念代替X1,X2和X3
def featureScaling(arr):
y=(arr[1]-arr[0])/(arr[2]-arr[0])
return y
data = [115, 140, 175]
print (featureScaling(data))
答案 4 :(得分:0)
您正在将数组传递给该数组->
指向某个内存位置的函数,在您的代码中。您正在尝试分配数组以指向其他内存位置,可以这样做,但是必须在使用之前定义值。现在我要做的是删除该语句并使用元素,我们可以通过索引值来寻址数组元素,arr [0]指向数组中的第一个值
from __future__ import division
from __future__ import print_function
def featureScaling(arr):
y=(arr[1]-arr[0])/(arr[2]-arr[0])
return y
data = [115, 140, 175]
print (featureScaling(data))
此版本以浮点精度运行python3和python2
输出
0.416666666667