使用Numpy ndarray表示矩阵时,如何基于某列值修改另一列?
基于Numpy数组另一列的值更新目标列
实现代码
结合你的示例数组,直接用Numpy的布尔索引就能完成条件更新,代码如下:
import numpy as np # 初始化示例数组 arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # 生成布尔掩码:筛选第二列(Numpy用0索引,所以对应索引1)值大于3的行 mask = arr[:, 1] > 3 # 给符合条件的行的第三列(索引2)加10 arr[mask, 2] += 10
执行后数组会变为:
array([[ 1, 2, 3, 4], [ 5, 6, 17, 8], [ 9, 10, 21, 12]])
关于ndarray的概念说明
你对ndarray的理解没有问题,它确实是Numpy官方推荐用来表示矩阵(多维数组)的核心结构。它的核心优势是支持向量化操作——不用像普通Python列表那样写循环遍历每一行,直接通过布尔索引就能批量处理符合条件的元素,效率远高于循环遍历。
内容的提问来源于stack exchange,提问作者johnl
相关产品推荐
相关产品推荐

