如何在 python 中的列表列表中查找元素的出现

how to find occurrences of elements in a list of list in python

刚开始学习python。

我将图像转换为灰色像素矩阵(0=黑色,255=白色)

from PIL import Image
import numpy
import array

im = Image.open("elephant.jpg")                 
grayim = im.convert('L')                        

pixelmatrix = numpy.asarray(grayim)   

如果我

print pixelmatrix

我得到类似的东西:

pixelmatrix = [154 154 154 ..., 169 169 169]
              [153 153 153 ..., 166 166 166]
              [153 153 153 ..., 161 161 161]
              ..., 
              [151 130 107 ...,  51  85  75]
              [130 133 111 ...,  86  92  56]
              [ 91 127 119 ..., 102 139  66]]

这就是我要找的。好的

我想做的是评估一个值的出现,比方说 255。

我尝试了 for cycles 和 .count 方法。

for x in range(0, lastrow):
    for y in range(0, lastcolumn):
        print sum(pixelmatrix[x,y] 

它们不起作用,我不明白为什么。你能帮帮我吗?

非常感谢 再见

贾科莫

from PIL import Image
import numpy
import array

im = Image.open("elephant.jpg")                 
grayim = im.convert('L')                        

pixelmatrix = numpy.asarray(grayim)

no_occurrences = numpy.sum(pixelmatrix==255)
print(no_occurrences)

编辑:删除了代码片段中的冗余步骤并添加了打印语句。

假设您正在谈论一个实际的列表列表(您的 post 中缺少一些逗号,这就是我这么说的原因),然后尝试:

numOccurrences = sum([row.count(255) for row in pixelmatrix])

您可以使用 sum.

def pixel_frequency(value, image):
    return (image == value).sum()

pixel_frequency(255, pixelmatrix)
# 137 (or something)