首页 > 解决方案 > numpy 获取二维数组而不是一维数组

问题描述

我有一个 numpy 二维数组(3x2)。

my_array = np.array([[1,2],[3,4],[5,6]])
my_array.shape

(3,2)

然后我想要每一行的平均值,所以我只是这样做:

my_average = np.mean(my_array, axis=1)
my_average.shape

(3,)

my_average是一个一维数组(这是有道理的),但我希望它的形状是 (1,3) (甚至是 (3,1) 所以我可以转置它),换句话说,一个二维数组,其中一个维度是1.

我不能转置一维数组,它们保持不变:

np.transpose(my_average)

array([1.5, 3.5, 5.5])

当然我可以创建一个新数组并用 my_average 填充它

my_average_2 = np.array(np.transpose([my_average]))
my_average_2.shape

(3,1)

但是,这需要将 my_average 作为列表传递、转置并填充到另一个变量中。

有没有更简单的方法可以在相应方向上获得向量的平均值?

所以如果我通过axis = 0平均我想要一个(1,3)数组,如果我通过axis = 1做平均我想要一个(3,1)数组

谢谢

标签: arraysnumpy

解决方案


推荐阅读