在数组上定义函数

时间:2018-10-01 15:39:14

标签: python arrays

def featureScaling(arr):

     arr= [x1,x2,x3]
     y=(x2-x1)/(x3-x1)
     return y

data = [115, 140, 175]
print (featureScaling(data))

我想在数组上定义一个函数,该函数将前两项的差除以第三项和第一项的差,但是我不断收到一个错误,指出未定义x1。我是编码新手,可以真正使用帮助。

5 个答案:

答案 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