重塑一个numpy数组
我想在iPython中重塑下面的numpy数组:
array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]) # Array A
至:
array([[1, 5, 9],[2, 6, 10],[3, 7, 11],[4, 8, 12]]) # Array B
主要任务是计算数组A的第一个元素的均值(意思是1,5,9的平均数),然后计算第二个元素等。
我认为最简单的方法是重塑阵列,然后计算它的平均值。
有没有办法做到这一点,而不通过for
循环循环数组?
要做这种计算,你应该使用numpy。
假设a是你的起始数组:
a.transpose()
会做的伎俩
在mean
上使用axis
关键字; 无需reshape
:
>>> A = np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])
>>> A.mean(axis=0)
array([ 5., 6., 7., 8.])
如果你确实想要数组B
,那么你需要转置数组,而不是重新设置它:
>>> A.T
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
但是,你需要给axis=1
mean
。
下一篇: 3d Numpy array to 2d