如何对二维数组第一列执行np.sqrt运算且保留第二列?
解决二维数组列运算后维度错误的问题
报错原因
你执行Q14 = np.sqrt(Q14[:,0])时,Q14[:,0]会从原二维数组中提取出第一列,得到一个一维数组。经过np.sqrt计算后结果还是一维,你把这个一维数组重新赋值给Q14,直接覆盖了原本的二维数组结构。之后如果再尝试用二维索引(比如访问第二列),自然会触发“维度不匹配”的错误。
正确操作
要实现“第一列做平方根运算、第二列保留不变”的需求,你不需要替换整个数组,只需直接修改原数组的第一列即可:
# 直接对第一列赋值,保留二维结构 Q14[:, 0] = np.sqrt(Q14[:, 0])
执行完这行代码后,Q14仍然是(406080, 2)的二维数组,第一列存储平方根计算结果,第二列保持原始数据不变。
内容的提问来源于stack exchange,提问作者Britt.b
相关产品推荐
相关产品推荐

