取numpy数组中的列的平均值

时间:2017-08-29 21:11:10

标签: python arrays numpy

我使用numpy从csv文件中获取数据。 numpy数组的尺寸为:100 * 20。我如何取列的平均值(比如col 3,5,8)并用包含这3列的平均值的新列替换它们

如果

   col3 = 1,2,3,4
   col5 = 2,3,4,8
   col8 = 3,4,5,6

然后我想删除这3列并插入一个新列,其中每个条目包含这3列中的平均值

我想插入一个新列:2,3,4,6,删除前3个cols和最终数组的维度为100 * 28

有没有numpy函数可以做到这一点?

2 个答案:

答案 0 :(得分:3)

a = np.arange(100*30).reshape(100,30) # change this to your own data
cols = [2, 4, 7]                      # columns to calculate averages, i.e. 3,5,8
b = a[:, cols]                        # data of the cols
c = b.mean(axis=1)                    # average
a_no_b = np.delete(a, cols, axis=1)   # data without the cols
a_final = np.c_[a_no_b, c]            # final result

答案 1 :(得分:0)

对于列轴= 0,所以:

X = np.random.randint(0,101,shape=(100,50))
columns_average = X.mean(axis=0)

您将获得一维数组'columns_average',每列均值,因此有50个值。