刚接触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