【发布时间】:2019-05-02 13:33:20
【问题描述】:
我已经开始通过使用 numpy 数组操作来删除越来越多的 for 循环。但是,我坚持以下情况。欢迎任何帮助。
我从长度为 L 的数组 A 和长度为 L 的另一个数组 B 中的单个已知值 (0.55) 开始。我想使用交叉乘法填充第一个数组中的剩余值。
这给了我想要的输出:
def cross_mult(B, starting_A = 0.55):
A= np.zeros(B.shape)
A[0] = starting_A
for i in range(B.shape[0])[1:]:
A[i] = A[i-1] * B[i] / B[i-1]
return A
没有 for 循环的尝试失败:
def cross_mult(B, starting_A = 0.55):
A= np.zeros(B.shape)
A[0] = starting_A
A[1:] = A[:-1] * B[1:] / B[:-1]
return A
我明白了:
array([0.55 , 0.60401715, 0. ])
而不是一个包含三个值的完全填充的数组。
【问题讨论】:
标签: python arrays python-3.x numpy for-loop