python函数返回不必要的元组值

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

我正在尝试编写一个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(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哦,好的!!非常感谢你。这使事情变得明朗了很多!