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

标签 python

假设我有一个 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/

相关文章:

python - mySql 数据库在 0x104e18ea0 处有 sqlite3.Cursor 对象作为表中的输出

python - 属性错误: type object 'SESConnection' has no attribute 'DefaultHost

python - 将 Numpy 数组 reshape 为多维数组

python - xmlrpc 响应数据类型可能长吗?

python - Linux Mint Cinnamon 错误打开设置(没有名为 'PIL' 的模块)

python - 在 python 中使用正则表达式

python - 基于另一个变量的约束 PuLP 二元变量选择

python - 具有颜色渐变的 Matplotlib 3D 散点图

python - 提供静态文件时如何将 @bottle.route 转换为 Bottle.route() ?

python - 提取 python 方法参数的数量和名称