Python 3.x 计算0和1列的高度';全高的s和Bool值
急需帮助!我已经尝试过横穿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]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
[真、假、假、假]这里有一个例子:
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]