如何利用掩码将NumPy数组中3的倍数元素替换为其两倍值?
解决numpy数组中替换3的倍数元素的问题
你已经正确生成了判断3的倍数的掩码,接下来只需要利用numpy的布尔索引特性,直接对符合条件的元素进行赋值即可,非常简便:
在现有代码后添加一行:
arr[mask] *= 2
或者等价的写法:
arr[mask] = arr[mask] * 2
完整代码示例:
import numpy as np li = list(range(3,150,4)) arr = np.array(li) mask = arr%3==0 n_mult= np.count_nonzero(mask) # 替换3的倍数为两倍值 arr[mask] *= 2
执行后,arr中所有是3的倍数的元素都会被替换成自身的两倍。numpy的布尔索引允许你直接通过掩码数组筛选出目标元素,然后批量修改,这是numpy处理这类元素替换场景最简洁的方式。
内容的提问来源于stack exchange,提问作者doloresafwat
相关产品推荐
相关产品推荐

