Python中用Numpy数组列算术运算结果替换指定列的问题咨询
错误原因分析
你之前的代码写法的核心问题是索引选择错误:
A[:2]语法选中的是数组的前2行二维数据,而你需要选中的是第三列A[:,0] + A[:,1]计算得到的是长度为2的一维向量,和你选中的2行3列的二维数据维度不匹配,自然无法得到预期替换效果
正确实现方法
直接选中第三列(Numpy数组索引从0开始计数,第三列对应索引为2)赋值即可,代码如下:
import numpy as np A = np.array([[1,2,0],[5,6,0]]) # 选中所有行的第3列,赋值为前两列的和 A[:, 2] = A[:, 0] + A[:, 1] print(A)
运行输出结果为:
[[ 1 2 3] [ 5 6 11]]
通用扩展
如果需要替换为其他算术组合,直接修改右侧的运算表达式即可,例如要将第三列替换为「第一列乘3减去第二列乘2」,写法如下:
A[:, 2] = A[:, 0] * 3 - A[:, 1] * 2
内容的提问来源于stack exchange,提问作者SteveM49
相关产品推荐
相关产品推荐

