python函数返回不必要的元组值
我正在尝试编写一个python函数,用于读取csv文件并将其转换为numpy数组。然后我要计算它的平均值和中位数。问题是: 这就是我写的代码python函数返回不必要的元组值,python,function,numpy,csv,tuples,Python,Function,Numpy,Csv,Tuples,我正在尝试编写一个python函数,用于读取csv文件并将其转换为numpy数组。然后我要计算它的平均值和中位数。问题是: 这就是我写的代码 def calc_stats(csvF): data = np.loadtxt(csvF, delimiter=',') meanF = sum(data)/len(data) data.sort() if len(data)%2 == 0: m1 = data[len(data)//2] m2 = data[len
def calc_stats(csvF):
data = np.loadtxt(csvF, delimiter=',')
meanF = sum(data)/len(data)
data.sort()
if len(data)%2 == 0:
m1 = data[len(data)//2]
m2 = data[len(data)//2 - 1]
medianF = (m1+m2)/2
else:
medianF = data[len(data)//2]
returnVal = (meanF, medianF)
return returnVal
您可以在问题中看到我们期望的输出,但我得到的输出是:
array([ 9.65666667, 15.89 , 13.43666667, 5.4 ]), array([ 1.27, 3.99, 11.73, 19.66]))
我不明白为什么我会得到这些额外的值。我似乎不知道我做错了什么。请提供帮助。这些值是每列的平均值和中位数,而不是所有数据的总和 您必须重塑(将数组展平为列表)数据
data = np.loadtxt(csvF, delimiter=',')
data = data.reshape(-1)
meanF = sum(data) / len(data)
我该如何解决这个问题?我需要把所有的价值加起来谢谢你。这起作用。
数据
加载的是一个2d numpy数组,形状(3,4)len
和sum
是在第一维度上操作的Python函数。如果需要所有值的总和,请使用np.sum
和np.size
。或者按照答案中的建议,使用data=data.ravel()
将数组展平到1d。在numpy
中,如果有任何混淆,您需要使用print(…shape
)跟踪数组形状。@hpaulj哦,好的!!非常感谢你。这使事情变得明朗了很多!