Python 两个数组相减
我是python新手,在代码方面遇到了问题。我尝试减去两个数组,其中一个数组附加了新值,但无法让它用减去的值打印新数组。我试图修复它,但得到的值只是for循环的加法。我应该用lambda来减去这两个吗Python 两个数组相减,python,arrays,Python,Arrays,我是python新手,在代码方面遇到了问题。我尝试减去两个数组,其中一个数组附加了新值,但无法让它用减去的值打印新数组。我试图修复它,但得到的值只是for循环的加法。我应该用lambda来减去这两个吗 from array import * 等级温度: @staticmethod def Model(): days = array('i',[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
from array import *
等级温度:
@staticmethod
def Model():
days = array('i',[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])
recordedtemp = array('i', [63,62,69,76,70,68,71,71,73,74,75,78,77,77,76,76,77,78,78,82,82,82,81,82,82,76,75,81,85,89])
print("Temperature:")
for i in days:
modelarray = array('i'[0]) * 30
modeltemp = float(0.5904) * i + float(67.048)
rounding = int(round(modeltemp, 2))
modelarray.append(rounding)
print(modeltemp)
continue
print("Error:")
a = list(map(lambda x,y: x - y, recordedtemp, modelarray))
print(a)
代码中的问题如下:
days = array('i',[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])
recordedtemp = array('i', [63,62,69,76,70,68,71,71,73,74,75,78,77,77,76,76,77,78,78,82,82,82,81,82,82,76,75,81,85,89])
print("Temperature:")
for i in days:
# modelarray = array('i'[0]) * 30 # original line
modelarray = array('i', [0]) * 30 # new line with extra comma
modeltemp = float(0.5904) * i + float(67.048)
rounding = int(round(modeltemp, 2))
modelarray.append(rounding)
print(modeltemp)
continue
print("Error:")
a = list(map(lambda x,y: x - y, recordedtemp, modelarray))
print(a)
您说过您是Python新手,所以让我通过使用numpy数组重新编写您的问题来为您指出类似问题库的方向,这样可以避免像您在这里所做的那样在元素上循环。这就是使用NumPy时代码的外观
import numpy
days = numpy.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])
recordedtemp = numpy.array([63,62,69,76,70,68,71,71,73,74,75,78,77,77,76,76,77,78,78,82,82,82,81,82,82,76,75,81,85,89])
print("Temperature:")
print(recordedtemp)
modelarray = numpy.round(0.5904*days + 67.048)
print('Error:')
print(recordedtemp - modeltemp)
您也很有可能不需要将其作为一个带有静态方法的类来使用——记住Python有第一类函数,所以您可以编写一个函数来实现这一点,或者像我在这里所做的那样,只需将代码编写为一个直接的脚本。您能进一步解释一下您想要的结果是什么吗?每次通过循环时都要重新创建modelarray值,因此其中始终有31个值—原始的30个零加上一个附加值。您是否希望用新值替换零值?稍后的映射调用将忽略任何附加值,因为它在给定的最短的可映射项用完时停止映射。最后一个问题:您是否考虑过使用numpy而不是数组?numpy是专门为数值计算而设计的。感谢您接受我的回答,请看一下我在这里发布的额外代码。看起来您来自Java或C之类的地方,在那里所有的东西都必须是类。在Python中很少使用静态方法,因为我们有一流的函数。另外,如果你在做科学类的事情,看看NumPy让你的生活变得多么简单。