T-050909-L 2021-04-08 23:28 采纳率: 0%
浏览 126

python数组的运算

刚接触python的菜鸟,请问为什么运算结果这么离谱啊,我就想将数组第二列减去同一个数。

部分原数据

[[  44.77128601   14.04218197]
 [ 117.71398926   37.58509445]
 [ 119.91621399   38.46121597]
 [ 121.7646637    38.75228882]
 [ 130.83340454   14.55740738]
 [ 133.99794006   14.06195545]]

代码:

import numpy as np
np.set_printoptions(suppress=True)
for i in range(0,235):
    resArray[i,1] -= 15.33813006
print(resArray)

输出结果:

[[  44.77128601 -108.32472845]
 [ 117.71398926  -84.78181597]
 [ 119.91621399  -83.90569445]
 [ 121.7646637   -83.6146216 ]
 [ 130.83340454 -107.80950304]
 [ 133.99794006 -108.30495497]]
  • 写回答

3条回答 默认 最新

  • CSDN专家-孙老师 2021-04-08 23:53
    关注

    代码没什么问题,可能是多次运行了,每次运行都会改变resArray的值。

    可以将resArray的赋值代码执行一下,再次执行这个代码看看。

    另外,用Python的数组对象和标量运算,可以不用循环,直接相减即可。

    import numpy as np
    
    arr1=np.array([[44.77128601,   14.04218197],
                    [ 117.71398926,   37.58509445],
                    [ 119.91621399 ,  38.46121597],
                    [ 121.7646637,    38.75228882],
                    [ 130.83340454,   14.55740738],
                    [ 133.99794006,   14.06195545]])
    arr1[:,1]-=15.33813006
    print(arr1)
    [[ 44.77128601  -1.29594809]
     [117.71398926  22.24696439]
     [119.91621399  23.12308591]
     [121.7646637   23.41415876]
     [130.83340454  -0.78072268]
     [133.99794006  -1.27617461]]
    评论

报告相同问题?