【发布时间】:2020-02-07 04:48:33
【问题描述】:
我的目标是迭代地将列表列表传递给函数,但我返回一个错误。下面的代码创建了一个随机列表。一旦生成,它就会被传递给一个单独的函数。
所以列表列表命名为mult_samples。我希望将它传递给一个函数。
但我无法传递整个列表。如何遍历所有子列表并将输出作为数组或 df 返回?
import pandas as pd
import random
import numpy as np
df = pd.DataFrame({
'X' : [1.0,3.0,2.0,2.0,4.0,3.0,3.0,4.0,4.0],
})
def randomSamples():
A = df['X']
n = len(df['X'])
maxv = int(A.max())
minv = int(A.min())
one_sample = []
for x in range(0, n):
one_sample.append(random.randint(minv, maxv))
samples = [one_sample for _ in range(10)]
return samples
mult_samples = randomSamples()
子集 list1 和 list2
输出:
mult_samples[0] = [3, 2, 3, 3, 4, 2, 3, 3, 3]
mult_samples[1] = [1, 4, 1, 3, 3, 4, 3, 4, 2]
def func(U, m = 2, r = 0.2):
def _maxdist(x_i, x_j):
return max([abs(ua - va) for ua, va in zip(x_i, x_j)])
def _phi(m):
x = [[U[j] for j in range(i, i + m - 1 + 1)] for i in range(N - m + 1)]
C = [len([1 for x_j in x if _maxdist(x_i, x_j) <= r]) / (N - m + 1.0) for x_i in x]
return (N - m + 1.0)**(-1) * sum(np.log(C))
N = len(U)
return abs(_phi(m + 1) - _phi(m))
output_mult_samples = func(mult_samples)
#output_mult_samples = list(map(funclist, mult_samples))
print(output_mult_samples)
出来
mult_samples[0] = 0.253692959177
mult_samples[1] = 0.0397554025155
【问题讨论】:
-
你能说清楚一点吗
-
@Jeril,现在怎么样?
-
你能提供更多关于
func的信息吗?参数的本质是什么?您预期会发生什么,但实际上发生了什么? -
func是做什么的?你能分享它的代码吗
标签: python pandas function apply