采用不同大小的数组元素的平均值

时间:2018-03-22 19:42:25

标签: python arrays numpy nan mean

假设我有一个5x5阵列'A'。我想取该数组中五个元素的平均值。这些值中的一个可能是Nan。我觉得这样的事情会奏效:

np.nanmean(np.array([A[1,1], A[2, 2:3], A[3, 1:3]]))

但事实并非如此。我得到了

ValueError: setting an array element with a sequence.

我也试过连接,展平和使用列表而不是np.array,但没有运气。

如果这个问题重复,我很抱歉。这似乎是一个简单的问题,但我无法弄清楚,我发现很难选择好的搜索条件来在线找到解决方案。

1 个答案:

答案 0 :(得分:1)

在进行平均之前,您可以将所有元素连接成一个数组:

np.nanmean(np.concatenate([[A[1,1]], A[2, 2:3], A[3, 1:3]]))

请注意,我已将A[1,1]放入额外列表中。这是微妙的,也是你烦恼的根源: A[2, 2:3]只包含一个数字,它仍然是一个数组,因为它是从一个切片构造的。另一方面,A[1,1]只是一个数字,不是生活在数组对象内部。您的错误消息告诉您将此裸号与其他阵列混合会导致问题。