假设我有一个 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])
关于python - 仅在列表的非无元素上运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746885/