小编Fra*_*sco的帖子

Python,与joblib并行化:使用多个参数延迟

我使用类似于以下内容的东西来并行化两个矩阵的for循环

from joblib import Parallel, delayed
import numpy

def processInput(i,j):
    for k in range(len(i)):
        i[k] = 1
    for t in range(len(b)):
        j[t] = 0
return i,j

a = numpy.eye(3)
b = numpy.eye(3)

num_cores = 2
(a,b) = Parallel(n_jobs=num_cores)(delayed(processInput)(i,j) for i,j in zip(a,b))
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:解压缩的值太多(预期2)

有没有办法返回延迟的2个值?或者你会提出什么解决方案?

另外,有点OP,是否有更紧凑的方式,如下(实际上没有修改任何东西)来处理矩阵?

from joblib import Parallel, delayed
def processInput(i,j):
    for k in i:
        k = 1
    for t in b:
        t = 0
return i,j
Run Code Online (Sandbox Code Playgroud)

我想避免使用has_shareable_memory,以避免在实际脚本中出现可能的错误交互并降低性能(?)

python parallel-processing delay joblib

8
推荐指数
1
解决办法
5150
查看次数

max()大嵌套列表

我在处理一对长列表对的最大值时遇到了一个非常奇怪的问题,例如

[
    [(0, 1), (1, 1), (2, 1), (3, 4), (4, 1), (5, 1), (6, 1),...,(141,3)],
    ..., 
    [(12, 1), (36, 1), (91, 1), (92, 1), (110, 1),..., (180, 1)]
]
Run Code Online (Sandbox Code Playgroud)

我试图获得所有对中第一个元素的最大值.从语法上说,我在做:

max([max(x) for x in list])[0]
Run Code Online (Sandbox Code Playgroud)

实际上返回正确的数字,如果列表短于281个列表.事实上,一旦列表超过280,我就会收到此消息

ValueError: max() arg is an empty sequence
Run Code Online (Sandbox Code Playgroud)

所以,一长串清单

max([max(x) for x in list[0:280]])[0]
Run Code Online (Sandbox Code Playgroud)

这很好,而

max([max(x) for x in list[0:281]])[0]
Run Code Online (Sandbox Code Playgroud)

休息.

我在这里做错了吗?

python list max nested-lists

-1
推荐指数
1
解决办法
343
查看次数

标签 统计

python ×2

delay ×1

joblib ×1

list ×1

max ×1

nested-lists ×1

parallel-processing ×1