问题遇到的现象和发生背景
数组array或者list形式的数组,逐元素进行调用函数,由于数据量超大,运算过慢。期待病情算法
问题相关代码,请勿粘贴截图
a= np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]]) # 模拟数组,而我实际的数组为a.shape=(1000,2)
Nodes=[1101,1105,1208,1306,1407,1876] # lenth = 6 # a与Nodes是一一对应的
print(a.shape) # (6,2)
Policy= collections.defaultdict(lambda: [0, 0])
# 我的做法
for i in range(len(Nodes)):
Policy[Nodes[i]]=a[i]
Policy
运行结果及报错内容
(6, 2)
defaultdict(<function __main__.<lambda>()>,
{1101: array([1, 2]),
1105: array([3, 4]),
1208: array([5, 6]),
1306: array([7, 8]),
1407: array([ 9, 10]),
1876: array([11, 12])})
我的解答思路和尝试过的方法
使用for循环的方式,逐一对元素进行操作。由于我实际的array数组太大,甚至还多次对数组元素调用函数的操作,导致运行变慢。
我想要达到的结果
希望能够实现并行操作。即对数组元素的一起调用函数。
想要实现这点的原因在与:
python中使用array数组而不是list列表就是为了遵循并行思想,提高运算效率的。
不知道这点的,请参考链接:https://blog.csdn.net/weixin_44322399/article/details/105700715