Numpy形状相同,均值返回不同的形状[重复]

Posted

技术标签:

【中文标题】Numpy形状相同,均值返回不同的形状[重复]【英文标题】:Numpy shape is same, mean returns different shapes [duplicate] 【发布时间】:2020-05-06 03:40:53 【问题描述】:

我有以下sn-p。

values = [[0.1, 0.7, 0.5], [0.6, 0.3, 0.2], [0.2, 0.8, 0.77]]
A = np.array(values).reshape(3,3)
print A.shape
print np.mean(A, axis=1)

B = np.mat(np.random.rand(3, 3));
print B.shape
print np.mean(B, axis=1)

打印语句的输出:

(3, 3)
[ 0.43333333  0.36666667  0.59      ]

(3, 3)
[[ 0.47252016]
 [ 0.44380355]
 [ 0.51070646]]

我有两个具有不同值的相同形状的 numpy 数组作为输入,一个是使用 rand 函数生成的,另一个是使用 array 函数创建并对其调用 reshape 的 python 列表。

但是,尽管输入形状相同,但两者的平均回报形状却不同。有什么想法会导致这种情况吗?

【问题讨论】:

确实如此,只是想通了一遍......谢谢,这就解释了! 许多采用axis 参数的函数/方法也采用keepdims 参数。如果True,它可以使数组平均值表现得更像矩阵一。 【参考方案1】:

numpy.matrix 的文档中所述,

矩阵是一种特殊的二维数组,通过运算保持其二维性质

另外,

不再推荐使用这个类,即使是线性代数。而是使用常规数组。将来可能会删除该类。

【讨论】:

以上是关于Numpy形状相同,均值返回不同的形状[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用逐元素操作获取多个 numpy 保存的数组的均值和标准

在numpy中获取3D数组的2D切片的平均值

归一化

python使用numpy的array_equal函数判断两个numpy数组是否具有相同的形状(shape)和元素(elements)如果都满足则返回True否则返回False

具有不同切片的二维 numpy 数组的平均值

Numpy 二维移动平均线