python - 有没有办法指定 QuTiP 的 parallel_map 应该迭代哪个参数?
问题描述
QuTiP 的函数parallel_map
提供了并行计算给定函数的多个参数值的可能性。所有示例都显示了第一个位置参数不同的情况,如下所示:
def testFunc1(a, b):
return a, b
from qutip import parallel_map
parallel_map(testFunc1, (1, 2, 3), task_args=(4,))
这返回[(1, 4), (2, 4), (3, 4)]
。现在我想知道是否也可以有一个固定的值a
和一个元组b
。根据文档 task_args
也可以是字典,所以我尝试了
parallel_map(testFunc1, (1, 2, 3), task_args={'a': 4})
parallel_map(testFunc1, (1, 2, 3), task_args={'a': 4, 'b': (1, 2, 3)})
但这会导致TypeError: can only concatenate tuple (not "dict") to tuple
.
当我尝试
parallel_map(testFunc1, b=(1, 2, 3), task_args={'a': 4})
我明白了TypeError: parallel_map() missing 1 required positional argument: 'values'
。
有人知道如何使用parallel_map
第n个位置参数(不为每个n编写函数包装器)吗?
解决方案
问:“如何使用
parallel_map
第n
-th 位置参数(不为每个参数编写函数包装器n
)?”
避免在没有问题的地方产生问题,并将您的-th 放置在您的-ed 函数调用签名n
中的外部填充迭代直接放入-expected (如文档所述)和迭代处理兼容:def
parallel_map()
tuple
# ( )-------------------------- parallel_map() expected TUPLE
#your Fun( ( a vv--)-------------------)----------------your FED-IN ITERABLE
testFunc1( ( 'a', 'b1' ), 'of-no-interest' ) --> (('a', 'b1'), 'of-no-interest')
testFunc1( ( 'a', 'b2' ), 'of-no-interest' ) --> (('a', 'b2'), 'of-no-interest')
testFunc1( ( 'a', 'b3' ), 'of-no-interest' ) --> (('a', 'b2'), 'of-no-interest')
“你的意思是这样的
parallel_map(testFunc1, [(4, 1), (4, 2), (4, 3)], task_args=('of-no-interest',))
吗?这里b
总是有价值的'of-no-interest'
。- AP 2 小时前”
不,
该示例是卸载a
和所有第n个用户端代码 FED-IN可迭代( s)的清晰路径,正如上面所要求的那样。
def testFun2( a, b ):
return [ item for item in tuple( a ) ], b
带路,打电话给:
testFun2( ( 'a', 'b', "c", None, 42, -3.14159, "The-N-th-ITERABLE" ),
'not-important-one-(of-no-interest-HERE-in-solving-N-th-iterable-for-parallel_star()-calls)...'
)
交付 -->
(['a', 'b', 'c', None, 42, -3.14159, "The-N-th-ITERABLE"], 'not-important-one-(of-no-interest-HERE-in-solving-N-th-iterable-for-parallel_star()-calls)...')
完全满足 a)您希望对任何第N个可迭代项有空闲的希望,而不仅仅是第一个位置,而且 b)parallel_map()
正是期望的呼号签名并记录在案:
parallel_map( testFun2, # TASK Callable
( <_USER-SIDE_GENERATOR_FEED-IN_TUPLEsOfPARs_> ),# TASK VALUE(s)Array / List
any_other_wished2have_call-signature_parameters, # TASK_ARGS Dict
..., # TASK_KWARGS Dict
... # call KWARGS Dict
)
推荐阅读
- python - serial_asyncio:将串行端口读入队列并从 main() 读取该队列不起作用
- angular - 错误 Angular Uncaught TypeError:无法在引导时读取未定义的属性“绑定”
- python - Python df CSV如何删除默认行号
- java - 如何从活动访问服务的变量
- reactjs - React.js MERN 应用程序:Axios 删除路由未读取道具(范围问题)
- java - 网关 + 后端服务的 OAuth2 流
- java - 如何使用 compareTo 按字典顺序打印 3 个数字和字母中的最大值
- javascript - 通过函数创建对象并使用方法而不将对象存储在变量中
- ruby-on-rails - 如何设计两个不同的门户?
- java - Thymeleaf:将角色应用于用户时出现字段错误(一对多关系)