我试着把python字典中的函数一个接一个地调用到另一个函数中
feature={
1:[perm_entropy, 3, True],
2:[svd_entropy, 3, 1, True],
3:[petrosian_fd],
4:[katz_fd],
5:[higuchi_fd],
6:[hjorth_mobility],
7:[hjorth_complexity]}
我试图调用上面的函数如下
sub_25=[]
for i in feature.values():
sub_25.append(sub25.groupby('trial')[col1].agg(i))
除前2个功能外,其他所有功能都正常工作。我认为这是因为他们有额外的参数。 这两个函数可以很好地工作,如果它们分别调用如下
sub_25.append(sub25.groupby('trial')[col1].agg(perm_entropy, 3, True))
如何处理这两个函数? EEG data
在文档(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.agg.html)中,pandas
agg
方法接受一个函数作为第一个参数,第二个是可选轴,然后是将传递给指定函数的位置参数。你知道吗要在for循环中执行此操作,应该使用
*
来解压i
,因为i
是需要传递给agg
的参数列表。你知道吗例如,假设
i = [perm_entropy, 3, True]
,那么sub_25.append(sub25.groupby('trial')[col1].agg(*i))
等价于sub_25.append(sub25.groupby('trial')[col1].agg(perm_entropy, 3, True))
,这就是你所追求的。你知道吗您需要的是部分应用于您的用例的函数。Python的functools包可以解决这个问题。您可以按照以下示例更改代码:
类似地,您可以用它所需的参数编写
perm_entropy
,并传递 你的价值观您可以阅读部分应用的函数以获得进一步的说明。你知道吗
相关问题 更多 >
编程相关推荐