Python 3.x 计算0和1列的高度';全高的s和Bool值

Python 3.x 计算0和1列的高度';全高的s和Bool值,python-3.x,Python 3.x,急需帮助!我已经尝试过横穿2d数组并使用row.count()但是到目前为止没有任何效果 Python不确定如何开始,我想找到1列的高度。 输入[[0,1,1,0],[1,1,1,0],[1,1,1,1]] 输出[2,3,3,1] 制作一个函数,该函数采用如下示例中的2d数组,并给出真值或假值。是的,一列的全长只有2个。 [2,1,1,0],[2,1,1,0],[2,1,1,0] [真、假、假、假]这里有一个例子: def fun(arr): # assuming given array

急需帮助!我已经尝试过横穿2d数组并使用row.count()但是到目前为止没有任何效果

Python不确定如何开始,我想找到1列的高度。 输入[[0,1,1,0],[1,1,1,0],[1,1,1,1]]

输出[2,3,3,1]

制作一个函数,该函数采用如下示例中的2d数组,并给出真值或假值。是的,一列的全长只有2个。 [2,1,1,0],[2,1,1,0],[2,1,1,0]


[真、假、假、假]

这里有一个例子:

def fun(arr):
    # assuming given array's elements are contain row values, this is the array that its elements are contain column values
    cols = [[arr[i][j] for i in range(len(arr))] for j in range(len(arr[0]))]
    # iterate the above array, if the iterating element is consists just 2's, return true, else return false
    return [all(i == 2 for i in n) for n in cols]
    
print(fun([[2,1,1,0],[2,1,1,0],[2,1,1,0]]))

这将为您提供输出
[真、假、假、假]

您可以使用
numpy


你能解释一下你所说的“1列的高度”是什么意思吗?还有,到目前为止,你尝试过哪些不起作用的方法?我的意思是计算从2d数组底部到顶部的1的数量。例如[1,0,1][1,1,1]所以第一列的高度是2,第二列的高度是1,第三列的高度是2,如果你使用
numpy
它很简单。
list((np.array(lst)==2)。all(axis=0))
应该适用于
lst
列表的
列表的地方。
import numpy as np
M=[[0,1,1,0],[1,1,1,0],[1,1,1,1]]
a=np.sum(M,axis=0)
print(a)----> output = [2 3 3 1]

a_list = a.tolist()
a_max = max(a_list)
print((a > a_max-1).tolist()) ---> [False,True,True,False]