我知道如何在joblib
中执行并行循环,返回一个列表作为结果。
但是,能否并行地填充预定义的numpy
矩阵呢?
想象一下以下最简单的示例矩阵和数据:
column_data = ['a', 'b', 'c', 'd', 'e', 'f', 'x']
data = [['a', 'b', 'c'],
['d', 'c'],
['e', 'f', 'd', 'x']]
x = np.zeros((len(data), len(column_data))
请注意,
column_data
是排序且唯一的。 data
是一个列表的列表,而不是一个矩形矩阵。循环:
for row in range(len(data)):
for column in data[row]:
x[row][column_data.index(column)] = 1
这个循环是否可以并行化?填充一个 70,000 x 10,000
的矩阵如果没有并行化的话会非常慢。
data
不是一个正方形矩阵,而是一个列表的列表。column_data
已排序并且唯一。 - Tim39774 x 6461
的矩阵,原始代码需要42.27秒
,而您的代码仅需0.99秒
:) - Tim