python 中的均值、方差和标准差

Mean, variance and standard deviation in python

n,m = map(int,input().split())
A = []
for _ in range(n):
    A.append(map(int,input().split()))
A = numpy.array(A)

print (numpy.mean(A,axis = 1))
print (numpy.var(A,axis = 0))
print (round(numpy.std(A),11))

谁能告诉我我做错了什么? 我收到错误消息:numpy.AxisError: axis 1 is out of bounds for array of dimension 1

此外,我希望用户输入 n x m 维度的数组。 如何添加 m 维度检查?

请帮忙。

当您尝试在数组中追加元素时,您正在使用 map 函数获取元素,map 函数总是 return 一个 map 对象,而您只是将 map 对象作为元素追加到大批。因此,当您尝试访问 axis=1 时,实际上数组中不存在 axis=1 因为该数组包含带有地图对象的单行。

这是不使用列表理解的正确代码,

n,m = map(int,input().split())
A = []
for _ in range(n):
    A.append(list(map(int,input().split())))
A = numpy.array(A)
print(A)
print (numpy.mean(A,axis = 1))
print (numpy.var(A,axis = 0))
print (round(numpy.std(A),11))

这是使用列表理解的代码,

n,m = map(int,input().split())
A = []
for _ in range(n):
    A.append([int(x) for x in input().split()])
A = numpy.array(A)
print(A)
print (numpy.mean(A,axis = 1))
print (numpy.var(A,axis = 0))
print (round(numpy.std(A),11))