- 不支持的操作数类型:'function' 和 'function'
unsupported operand type(s) for -: 'function' and 'function'
我在尝试 return 数组中 1 个标准差以内的对象计数时遇到问题。为了得到标准偏差,我创建了两个函数,但现在我不能 add/subtract 这些函数。我试图将函数转换为整数,但开始收到关于我的标准差是浮点数这一事实的错误。执行所有这些操作的更好方法是什么?
import numpy as np
import math
vac_nums=np.array([180, 172, 178, 185, 190, 195, 192, 200, 210, 190])
def variance():
n = len(vac_nums)
mean = sum(vac_nums)/n
deviations = [(x - mean) ** 2 for x in vac_nums]
variance = sum(deviations)/n
return variance
print(variance())
def stdev():
var = variance()
std_dev = math.sqrt(var)
return std_dev
print(stdev())
sum = 0
for x in vac_nums:
if np.array(x) >=(variance-stdev) and np.array(x) <=(variance+stdev):
sum += 1
print(sum)
函数在 python 中 first class objects,整数、列表、类 以及您可能在短时间内想到的所有其他内容。函数可以被调用,在这种情况下它return是一个return值。使用 ()
运算符调用函数,有时包含 参数 .
您在代码中创建了两个函数对象:variance
和 stdev
。这两个名称指的是函数对象。
您在它们后面的每个 print
语句中调用函数。例如 variance()
是一个调用 return 是一个 float
,您可以打印它。
如您所料,两个函数对象的总和没有意义。您可以有意义地添加整数、浮点数甚至列表,但函数的总和是多少?由于每个函数的 return 值都是一个数字,您可以有意义地添加(或减去)这些值:
variance() + stdev()
通常我们将昂贵函数调用的 return 值存储到一个变量一次,然后使用该变量而不是重新运行该函数的所有操作。在 python 中,您通过使用 =
运算符将对象(如 return 值)绑定到名称来存储变量。你可以这样做:
s = stdev()
print(s)
...
v = variance()
print(v)
...
# Use v + s in an expression instead of variance + stdev
我在尝试 return 数组中 1 个标准差以内的对象计数时遇到问题。为了得到标准偏差,我创建了两个函数,但现在我不能 add/subtract 这些函数。我试图将函数转换为整数,但开始收到关于我的标准差是浮点数这一事实的错误。执行所有这些操作的更好方法是什么?
import numpy as np
import math
vac_nums=np.array([180, 172, 178, 185, 190, 195, 192, 200, 210, 190])
def variance():
n = len(vac_nums)
mean = sum(vac_nums)/n
deviations = [(x - mean) ** 2 for x in vac_nums]
variance = sum(deviations)/n
return variance
print(variance())
def stdev():
var = variance()
std_dev = math.sqrt(var)
return std_dev
print(stdev())
sum = 0
for x in vac_nums:
if np.array(x) >=(variance-stdev) and np.array(x) <=(variance+stdev):
sum += 1
print(sum)
函数在 python 中 first class objects,整数、列表、类 以及您可能在短时间内想到的所有其他内容。函数可以被调用,在这种情况下它return是一个return值。使用 ()
运算符调用函数,有时包含 参数 .
您在代码中创建了两个函数对象:variance
和 stdev
。这两个名称指的是函数对象。
您在它们后面的每个 print
语句中调用函数。例如 variance()
是一个调用 return 是一个 float
,您可以打印它。
如您所料,两个函数对象的总和没有意义。您可以有意义地添加整数、浮点数甚至列表,但函数的总和是多少?由于每个函数的 return 值都是一个数字,您可以有意义地添加(或减去)这些值:
variance() + stdev()
通常我们将昂贵函数调用的 return 值存储到一个变量一次,然后使用该变量而不是重新运行该函数的所有操作。在 python 中,您通过使用 =
运算符将对象(如 return 值)绑定到名称来存储变量。你可以这样做:
s = stdev()
print(s)
...
v = variance()
print(v)
...
# Use v + s in an expression instead of variance + stdev