3

给定三个列表:

A = [1, 2, 3]
B = [4, 5, 6]
C = [7, 8, 9]

如何计算以下(列)的平均值?

  • [1, 4, 7] 的平均值
  • [2, 5, 8] 的平均值
  • [3, 6, 9] 的平均值

不是以下(行),

  • [1, 2, 3] 的平均值
  • [4, 5, 6] 的平均值
  • [7, 8, 9] 的平均值

import numpy as np
A = np.array([1,2,3])
B = np.array([4,5,6])
C = np.array([7,8,9])

我应该怎么办?

4

2 回答 2

3

使用numpy.ndarray.transpose

>>> np.array([
...     [1,2,3],
...     [4,5,6],
...     [7,8,9]
... ]).transpose().mean(axis=1)
array([ 4.,  5.,  6.])

或使用numpy.transpose

>>> np.transpose([
...     [1,2,3],
...     [4,5,6],
...     [7,8,9]
... ]).mean(axis=1)
array([ 4.,  5.,  6.])

更新

正如 Dave Hirschfeld 评论的那样,意思axis=0是要好得多:

>>> np.array([
...     [1,2,3],
...     [4,5,6],
...     [7,8,9]
... ]).mean(axis=0)
array([ 4.,  5.,  6.])
于 2013-11-10T05:45:15.757 回答
1
import numpy as np
A = np.array([1,2,3])
B = np.array([4,5,6])
C = np.array([7,8,9])

Z = zip(A,B,C)

for z in Z :
    print np.mean(np.asarray(z))
于 2013-11-10T05:43:06.060 回答