我使用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函数可以做到这一点?
答案 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个值。