Skip to main content
 首页 » 编程设计

python之仅在列表的非无元素上运行函数

2025年05月04日30落叶无声

假设我有一个 Python 列表:a = [1,2,3,4,None]。假设我只想在不等于 None 的元素上运行 sklearn.preprocessing.scale。直接在列表上运行此函数会给出错误消息。

有没有办法做到这一点,而不必手动完成?我想要类似于 pandas 中的 .fillna() 方法的功能,您可以在其中在忽略非空元素的数据帧上运行一个函数,然后稍后替换它们。谢谢。

请您参考如下方法:

如果您正在使用 sklearn,您可能希望使用 numpy 数组而不是 Python 列表:

>>> x = np.array([1, 2, 3, 4, None], dtype=float) 
>>> ix = ~np.isnan(x) 
>>> x[ix] = sklearn.preprocessing.scale(x[ix]) 
>>> x 
array([-1.34164079, -0.4472136 ,  0.4472136 ,  1.34164079,         nan])