我一直在尝试加快我的代码的速度,在下面的代码中查找索引,该索引将从列表“名称”中获取一个字符串,并最终计算出它在两部分数据中的完全匹配数。
这个过程非常缓慢。我阅读了有关使用numpy数组时替换循环的信息,但不确定如何处理/采用正则表达式匹配创建矢量化版本。
x = np.empty([38000, 8000])
y = np.empty([38000, 8000])
for i in range(0, 38000):
for j in range(0, 8000):
x[i, j] = len(re.findall('\\b'+name[index[j]]+'\\b', data[i][1]))
y[i, j] = len(re.findall('\\b'+name[index[j]]+'\\b', data[i][2]))
非常感谢您的见解,
最佳答案
向量化在这里对您没有多大帮助,但是避免重复工作将:
patterns = [re.compile('\\b'+name[idx]+'\\b') for idx in index]
for i, row in enumerate(data):
for j, patt in enumerate(patterns):
x[i, j] = len(patt.findall(row[1]))
y[i, j] = len(patt.findall(row[2]))
关于python - 嵌套循环Numpy数组:可以向量化吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29837876/