我试图在Python中尽可能地避免循环,因为有人告诉我,当循环较少时,代码运行得更有效。出于同样的原因,我也尝试使用“zip”而不是嵌套循环来处理多个迭代器。
1.这个建议正确吗?
1.我已经尝试使用的建议,但不能过去这个错误时,试图运行下面的代码。我可能做了一些愚蠢的事情,但不能弄清楚。有人能给我指个方向吗?
ValueError: operands could not be broadcast together with shapes (6,) (4,)
import numpy as np
import itertools
# For each value in d and e, I want to loop through all a and b.
d = np.array([1, 2, 3, 4])
e = np.array([1000, 2000, 3000, 4000])
a = np.array([10.0e+2, 20.0e+2, 30.0e+2, 40.0e+2, 50.0e+2, 60.0e+2])
b = np.array([1.0e-1, 2.0e-1, 3.0e-1, 4.0e-1, 5.0e-1, 6.0e-1])
c = np.zeros(6)
for (j, k) in zip(d, e):
c = ((b * (25.0 - a))/(8*e)) + d
2条答案
按热度按时间7z5jn7bk1#
另一种方法是使用数组broadcasting,并完全摆脱
zip
和for
循环:dddzy1tm2#
您将乘以
e
并添加b
。你的意思是相应地使用k
和j
吗?