首页 > 解决方案 > python函数返回不必要的元组值

问题描述

我正在尝试编写一个读取 csv 文件并将其转换为 numpy 数组的 python 函数。然后我必须计算它的平均值和中位数。这是问题:

在此处输入图像描述

这是我写的代码

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]))

我不明白为什么我会得到这些额外的价值。我似乎无法弄清楚我做错了什么。请帮忙。

标签: pythonfunctionnumpycsvtuples

解决方案


这些值是每列的平均值和中位数,您不必将所有数据相加,您必须重塑(将数组展平为列表)您的数据

data = np.loadtxt(csvF, delimiter=',')
data = data.reshape(-1)
meanF = sum(data) / len(data)

推荐阅读