如何从数组中获取数据

时间:2020-04-13 16:04:04

标签: python numpy

我有一个来自txt文件的数组:

[[1, 4, 6, 2, 5]
[3, 4, 3, 5, 4]
[5, 3, 6, 7, 1]]
[[3, 4, 2, 5, 8]
[5, 2, 7, 5, 4]
[4, 2, 4, 4, 0]]
[[2, 5, 3, 1, 4]
[3, 8, 5, 6, 2]
[2, 6, 7, 4, 2]]

我想对每组结果取第三行的平均值。因此,每个组都放在双括号中[[1, 4, 6, 2, 5] [3, 4, 3, 5, 4] [5, 3, 6, 7, 1]]是一组,

[[3, 4, 2, 5, 8] [5, 2, 7, 5, 4] [4, 2, 4, 4, 0]]是第二组,等等。

如何分别访问每个组?

2 个答案:

答案 0 :(得分:1)

如果要通过以下方法获取每组第三行的平均值:

>>> data[:,2].mean(axis=1)
array([4.4, 2.8, 4.2])

例如,如果data

>>> data
array([[[1, 4, 6, 2, 5],
        [3, 4, 3, 5, 4],
        [5, 3, 6, 7, 1]],

       [[3, 4, 2, 5, 8],
        [5, 2, 7, 5, 4],
        [4, 2, 4, 4, 0]],

       [[2, 5, 3, 1, 4],
        [3, 8, 5, 6, 2],
        [2, 6, 7, 4, 2]]])

然后通过切片,我们获得每个组的第三行:

>>> data[:,2]
array([[5, 3, 6, 7, 1],
       [4, 2, 4, 4, 0],
       [2, 6, 7, 4, 2]])

然后对于每一行,我们可以使用.mean(axis=1)

计算平均值

答案 1 :(得分:1)

如果您的数据是这样的,则此代码可以正常工作

lst =[ 
[[1, 4, 6, 2, 5],[3, 4, 3, 5, 4],[5, 3, 6, 7, 1]],
[[3, 4, 2, 5, 8],[5, 2, 7, 5, 4],[4, 2, 4, 4, 0]],
[[2, 5, 3, 1, 4],[3, 8, 5, 6, 2],[2, 6, 7, 4, 2]]
     ]

import numpy as np

means = []

for i in lst:
    means.append(np.mean(i[2]))

print(means)

>> [4.4, 2.8, 4.2]