为了学习,我尝试使用python对数据进行统计处理。你知道吗
在我的问题中,我生成两次掷骰子n次,其中X是一个随机变量,定义了两次掷骰子的乘积。我设法计算了X的期望值,然后是X的方差,但是我在计算X的标准差时遇到了问题
这是我的问题。 如何从两个列表中得到第三个列表,基于对具有相同序列号的这两个列表的元素的代数运算?准确地说,我想得到这样的东西。你知道吗
x = [x0, x1, .., xi, .., xn]
y = [y0, y1, .., yi, .., yn]
z = [(x0-y0)^2, (x1-y1)^2, .., (xi-yi)^2, .., (xn-yn)^2]
这是我的密码。可能有点笨重,但这是我的第一个。我收到一个错误
unsupported operand type(s) for -: 'list' and 'Decimal
在线上
x_error_2 = Decimal (((x_storage) - (expectation_x))**2).quantize(Decimal('.0001'))
显然,我做错了。你知道吗
n = input ("n=")
sum_x = 0
sum_x_2 = 0
sum_x_error_2 = 0
x_storage = [ ]
expectation_x_storage = []
from decimal import Decimal
for i in range (0, n):
from random import *
x = Decimal ((randint(1, 6)*randint(1, 6))).quantize(Decimal('1'))
x_storage.append(x)
x_2 = Decimal (x**2).quantize(Decimal('.01'))
sum_x = sum_x + x
sum_x_2 = sum_x_2 + x_2
expectation_x = Decimal (sum_x / n).quantize(Decimal('.01'))
expectation_x_2 = Decimal (sum_x_2 / n).quantize(Decimal('.01'))
variance_x = Decimal ((expectation_x_2 - (expectation_x)**2)).quantize(Decimal('.01'))
print ("E(X)=")
print (expectation_x)
print ("V(X)=")
print (variance_x)
for i in range (0, n):
expectation_x_storage.append(expectation_x)
print x_storage
print expectation_x_storage
#code is working until the next line
for i in range (0, n):
x_error_2 = Decimal (((x_storage) - (expectation_x))**2).quantize(Decimal('.0001'))
sum_x_error_2 = sum_x_error_2 + x_error_2
standard_deviation_x_2 = Decimal ((sum_x_error_2)/(n-1)).quantize(Decimal('.01'))
print ("Sn2(X)=")
print (standard_deviation_x_2)
您已经有了两个列表
x = [x1,x2,...xn]
和y=[y1,y2,...,yn]
现在z
应该是z=[(x1-y1)^2,(x2-y2)^2,...,(xn-yn)^2]
你可以这样做:
如果要舍入这些数字,可以使用
round
函数round(x,y)
是x到y十进制数字的整数看起来您只需要在这里获取xÈu存储的第i个元素。你知道吗
同时更改行的标识
把它放在外面循环。不确定是否值得一提,但在python中,识别是关键的。你知道吗
那就行了。你知道吗
你好像在用Python2.7?我建议你不要把你称之为
print
的样式和括号混在一起。使用print(...)
。你知道吗相关问题 更多 >
编程相关推荐