Python与R:将函数应用于向量中的每个元素

Syl*_*202 19 python apply

我想len在向量中的每个元素上应用一个函数().在RI中可以很容易地做到这一点sapply(cities,char).在没有编写循环的情况下,Python中是否有这样的替代方案?

War*_*zee 13

语法是map(function, list).

例:

map(len, [ [ 1,2,3], [4,5,6] ])
Run Code Online (Sandbox Code Playgroud)

输出:

[ 3, 3 ]
Run Code Online (Sandbox Code Playgroud)


Kat*_*rra 6

将R sapply()可以用一个列表理解来代替,但很公平的列表理解并不严格避免书写一个的循环

除了map()您应该看一下Pandas之外它还提供了Python替代人在R中使用的某些功能的方法。

import pandas as pd

vector = [1,2,3,4,5]
square_vector = pd.Series(vector).apply(lambda x: x**2)  
print square_vector.tolist()
Run Code Online (Sandbox Code Playgroud)

上面的代码将产生一个新的列表,其中包含输入的平方值:

[1, 4, 9, 16, 25]
Run Code Online (Sandbox Code Playgroud)

在这里,我将向量传递给系列构造函数,pd.Series(vector)并应用了匿名函数apply(lambda x: x**2)。输出是一个熊猫系列,可以根据需要转换回列表tolist()。Pandas系列具有很多功能,是许多数据处理和分析任务的理想选择。