使用lambda函数计算数字无值

我有一个由一堆值组成的数组,其中一些是Nan,其他是None。我想数一数。我可以通过一个简单的for循环来实现,如图所示,

xx = np.array([2,3,4,None,np.nan,None])

count_None = 0
count_nan = 0
for i in xx:
    if i is None:
        count_None =+ 1
    if i is np.nan:
        count_nan =+ 1

我想找出我是否可以在一行中达到相同的结果,也许可以使用lambda函数。我试图这样写。但是,当然,语法不正确。有任何想法吗?

lambda xx: count_None =+1 if xx is None 
评论
pnon
pnon

这不是一个lambda,但它会创建一个仅包含None值的新列表,并计算该列表的长度。

import numpy as np
xx = np.array([2,3,4,None,np.nan,None])
print(len([elem for elem in xx if elem is None]))

如果您不需要使用numpy,则可以使用数组计数功能

xx = [2,3,4,None,np.nan,None]
print(xx.count(None))
点赞
评论
上个路口
上个路口

一种实现它的一种方法是:

len([i for i in xx if i is None])
# or the count function
xx.count(None)

or you can use the numpy.count_nonzero:

np.count_nonzero(xx == None)
点赞
评论