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]]

代码没什么问题,可能是多次运行了,每次运行都会改变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]]
resArray=[[44.77128601,14.04218197],
 [ 117.71398926,37.58509445],
 [ 119.91621399,38.46121597],
 [ 121.7646637,38.75228882],
 [ 130.83340454,14.55740738],
 [ 133.99794006,14.06195545]]
for i in range(0,6):
    resArray[i][1] -= 15.33813006
print(resArray)

 

[[44.77128601, -1.2959480899999996], [117.71398926, 22.246964390000002], [119.91621399, 23.12308591], [121.7646637, 23.41415876], [130.83340454, -0.7807226799999984], [133.99794006, -1.27617461]]

 

欢迎订阅我的Python菜鸟专栏,https://blog.csdn.net/jxq0816/category_7322654.html,本教程适合想从零开始学习 Python 编程语言的开发人员,当然本教程也会对一些模块进行深入,让你更好的了解 Python 的应用。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632