如何解决将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 举报,一经查实,本站将立刻删除。