微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将3d阵列中的所有运算与所有运算结合在一起的Numpy阵列

如何解决将3d阵列中的所有运算与所有运算结合在一起的Numpy阵列

我对numpy很陌生。我有一个像这样的数组,并想对其进行一些操作。 在2d数组中很容易,有很多示例,但在3d数组中没有。

arr = np.array([[[ True,True,False,True],[False,False],False]],[[False,[True,True] ],False] ] ])

如果在内部数组中应用np.all之后,结果将是: [[False,False]]

np之后,任何结果将是: [False,True]

我的意思是获取所有所有1d数组值均为true的数组的整体索引。就像在我的某些情况下,它应该返回索引的第一和第二,因为在第一个索引处,数组的子第一个索引和子第四个索引的所有值均为true,而在第二个索引的子第二个索引的所有数组值都为true,而在第零个索引中则不是所有值均为true的单个数组。

到目前为止我所做的是

np.all(np.any(arr,axis=1),axis=1)
             OR
np.any(np.all(arr,axis=1)

但是两者都不尽如人意,是的,我可以通过理解来解决,但是不希望任何类型的循环成为我的最后选择。

解决方法

我认为问题出在轴处理中。

根据经验,您可以认为最里面的括号包含最大维度的数据。

在您的示例中,如果您在解释器中键入arr.shape,它将返回以下元组(3,5,4),它们表示每个维度中arr的大小。如果您现在对问题中提到的第一个操作的预期结果执行相同的操作,您将得到(3,5),因此,您似乎(要说)想投影最大维度的数据(即axis=2)到另一个轴。除了最大尺寸现在为axis=1之外,下一个操作也是如此。

最后,以下行将完成np.any(np.all(arr,axis=2),axis=1)的工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。