【发布时间】:2020-10-04 20:02:22
【问题描述】:
我有一个 numpy 矩阵,如下所示。我想做的是获取包含在此处制作每一行/列的块的数组。这如何在 numpy 中有效地完成?
示例
因此,例如,如果我们有数组 [1 1 1 1 0 1 1 1 1 0](第一行),那么我们将得到 [4 4],因为我们有 2 个 4 块。
对于第一列,我们会得到[3 1],因为我们在开始时有三个1-s,然后是一个零,然后是一个1,然后是更多的零。
提到的矩阵
[[1 1 1 1 0 1 1 1 1 0]
[1 0 0 1 0 1 1 1 1 1]
[1 0 1 0 1 0 0 1 0 1]
[0 1 0 0 1 0 1 0 0 0]
[1 1 1 1 1 1 0 1 0 1]
[0 0 1 0 0 1 1 1 0 0]
[0 0 0 0 1 1 0 1 1 0]
[0 0 0 0 0 0 0 0 1 1]
[0 1 0 1 0 1 0 0 0 0]
[0 0 1 0 0 0 1 1 1 0]]
注意:行从左到右排序,列从上到下。
【问题讨论】:
-
第 2 行是什么?
[1, 1, 5]?第 3 行:[1, 1, 1, 1, 1]? -
@S3DEV 是的,完全正确
-
@S3DEV 并且同样的操作也应该应用于列(行从左到右排序,列从上到下)
-
好的。考虑到您正在寻找行和列结果,输出的形状/数据结构是什么。也许每个都有一个输出?
-
@S3DEV 一个包含多个数组的数组,每个数组都具有此处描述的形式(数组按其在矩阵中的出现排序,这意味着描述第一行的数组位于零位置(第一) )。列也是如此。
标签: python arrays numpy matrix