[英]What is the right way to change a set of values on every row in a 2D array?
我有一个形状为 (1015, 1200) 的二维数组“A”。 变量 L1 具有较低的指数,而 L2 具有较高的指数。 在 A 的 1015 行中的每一行中,我想更改与该行相关的 L1 和 L2 之间的元素值。 我现在正在使用for循环来执行这个操作,我想知道是否有更好的方法。
这是我现在使用的代码:
for i in range(A.shape[0]):
A[i, L1[i]:L2[i]] = 0
谢谢。
如果你想让它被矢量化,你可以尝试的一件事是
x = np.arange(A.shape[1])
mask = (x >= L1[:, np.newaxis]) & (x < L2[:, np.newaxis])
A[mask] = 0
虽然,我不确定它是否会更快,但它肯定会使用更多 memory。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.