减去两个数组

时间:2015-10-18 04:47:41

标签: 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,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)

1 个答案:

答案 0 :(得分:0)

您的代码中存在问题:

comment

你说你是Python的新手,所以让我通过使用numpy数组重写你的问题,让你指向NumPy库的方向来解决这个问题,这样可以避免在元素上循环就像你在这里做的一样。这就是你的代码使用NumPy的样子。

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有一流的函数,所以你可以编写一个函数来完成这个,或者就像我在这里所做的那样,将代码编写为直接脚本。

相关问题