假设我有一个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,但没有运气。
如果这个问题重复,我很抱歉。这似乎是一个简单的问题,但我无法弄清楚,我发现很难选择好的搜索条件来在线找到解决方案。
答案 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]
只是一个数字,不是生活在数组对象内部。您的错误消息告诉您将此裸号与其他阵列混合会导致问题。