繁体   English   中英

更改二维数组中每一行的一组值的正确方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM