我有从转换numpy的矩阵生成的嵌套列表列出嵌套列表中的每个值:加快嵌套循环操作
[
[0.65, 0.66, 4.29, 2.91, 0.17, 3.92, 2.24, 0.56, 8.99, 0.34, 0.0],
[0.012, 0.038, 0.072, 0.236, 0.012, 0.258, 0.075, 0.003, 0.0, 0.002, 0.0],
[0.003, 0.039, 0.138, 0.02, 0.002, 0.32, 0.013, 0.001, 0.999, 0.0, 0.0],
[0.154, 0.043, 0.737, 0.475, 0.028, 0.002, 0.485, 0.145, 0.0, 0.035, 0.0],
[0.018, 0.0, 0.019, 0.175, 0.01, 0.0, 0.065, 0.0, 0.0, 0.0, 0.0],
[0.0801, 0.0, 0.6707, 0.1496, 0.0112, 0.0, 0.2668, 0.0798, 0.0, 0.0385, 0.0],
[118.0, 88.0, 120.0, 186.0, 220.0, 146.0, 157.0, 150.0, 50.0, 50.0, 0.0],
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
]
我目前通过每一个元素循环执行以下操作:
A1 = A.tolist()
for index, v in enumerate(A1):
for index2, v2 in enumerate(v):
A1[index][index2] = float(v2 + offsets[index])/norms[index] * priorita[index]
A1 = np.matrix(A1)
由于此操作执行超过3.000.000次,这是我的应用程序的瓶颈。
- 是否有任何本地方法的numpy,可以帮助我的表演?
- 像地图替换枚举可以帮助我的表演吗?
请提供示例和文档链接。
谢谢。
好奇:你为什么把它列入清单?将它作为NumPy数组将允许您使用矢量化操作,并且所有相同的索引仍然可以工作。 – nneonneo
否则,我得到以下错误:TypeError:只能将长度为1的数组转换为Python标量 –
然后,您应该尝试找出代码不工作的原因。绝对不值得转换到Python列表来进行计算,特别是如果您以后只需转换回数组。 – nneonneo