看来我的数据格式为NumPy数组列表(type() = np.ndarray
):
[array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]]), array([[ 0.00353654]]), array([[ 0.00353654]]),
array([[ 0.00353654]])]
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个polyfit函数:
m1 = np.polyfit(x, y, deg=2)
Run Code Online (Sandbox Code Playgroud)
但是,它返回错误: TypeError: expected 1D vector for x
我假设我需要将我的数据展平为:
[0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654, 0.00353654 ...]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了列表理解,它通常适用于列表列表,但是这正如预期的那样无效:
[val for sublist in risks for val in sublist]
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
在哪些情况下哪个更有效?在某些情况下,哪一个根本无法工作?
我试图使一些通用代码更有效,并且很好奇哪个更好,因为据我所知,它们不能结合使用。
以供参考:
library(doParallel)
library(foreach)
foreach (i = list) %dopar% {
...
}
Run Code Online (Sandbox Code Playgroud)
对比
library(parallel)
parLapply(cl, X = list, fun = function)
Run Code Online (Sandbox Code Playgroud)