Python 从从文本文件提取的数组中读取并添加最后一个值

Python 从从文本文件提取的数组中读取并添加最后一个值,python,equivalence,Python,Equivalence,这是一个例子: 我有四个时间段标记为t=0,t=1,t=2,t=3。每次都有一个与之关联的值,如下所示: 文本文件的格式如下: 0213 1,-999 2456 3,-1100 基本上,每个值都在一个周期内。 我想做的是使用这些值并将所有值设置为t=0。 如果我画一个时间线,那么我会在t=0和t=2处有两个正值,在t=1和t=3处有两个负值 现在,我想从时间线的右侧到左侧,得到t=0。因此,在t=3时,这是时间线中的最后一个值,需要向左移动两个单位,将其添加到t=1的值中,因为它们都位于负值,然

这是一个例子: 我有四个时间段标记为t=0,t=1,t=2,t=3。每次都有一个与之关联的值,如下所示:

文本文件的格式如下:
0213
1,-999
2456
3,-1100

基本上,每个值都在一个周期内。 我想做的是使用这些值并将所有值设置为t=0。 如果我画一个时间线,那么我会在t=0和t=2处有两个正值,在t=1和t=3处有两个负值

现在,我想从时间线的右侧到左侧,得到t=0。因此,在t=3时,这是时间线中的最后一个值,需要向左移动两个单位,将其添加到t=1的值中,因为它们都位于负值,然后最终将该值从t=1移动到t=0。同样,我也需要为积极的一面这样做

下面是我的代码。这可能不正确,但我正在尝试:

import numpy as np

workspace = 'C:\\Users\MM\Desktop'

time= np.loadtxt(workspace +'\\Assign1.txt', delimiter = ',', usecols = range(1))
value = np.loadtxt(workspace +'\\Assign1.txt', delimiter = ',', usecols = range(1,2))
for x in time:
    x+1;
    print(x)

for y in value:
    y+1
    print(y[-1])   
# I want this to read the last value(-1100) from the array
# of the text file I have. I already got the values 
# pulled from the text file. It gives me an error.
如果我真的让它起作用,那么既然这是一个负值,我需要把它加到之前的负值上,依此类推


我的内容只是一个样本。时间值可以多于或少于4个,负值和正值可以位于时间线上的任何位置。目标是得到t=0中所有的负值和正值,看看负值是否等于正值。如果其中一个值大于1,但小于或等于15,则需要将这些值视为相等。

从代数角度讲,您描述的过程比您设定的过程简单得多。将所有数字相加,看看结果是否在[-15,15]范围内。使用此条件检查替换两个预期循环:

if -15 <= sum(value) <= 15:
    # Here, insert the code for matching stuff.

所以…你需要帮助排序你的值吗?你能用一个新的值更新你的问题吗?谢谢,这是过程的一部分,因为我需要将所有的负值和正值相互相加。需要按从右到左的顺序添加到t=0。@cricket_007我更新了代码。它应该运行,除非您需要创建该文本文件。上次打印的语句不是因为
y[-1]
@MasterMind我真的不明白你想要什么。我读了,又读了一遍,但这对我来说毫无意义。你能用另一种方式解释吗?例如,“将该值从t=1移动到t=0”是什么意思?谢谢!!为此。事实上,我有一个常数,在向左移动之前,我需要乘以它,所以如果我向左移动10,那么假设我的常数是2.5,答案是10*2.5+下一个数字,它作为一个整体成为一个新的数字。在我们的情况下,这将是34。然后,你做34*2.5+下一个数字。我该怎么做?我试图执行
value[I]*2.5+=last_neg
,但这给了我一个语法错误:无法分配给运算符。value[I]+=2.5*last_neg。。。请注意,您确实需要完成一些介绍性编程练习。在进入任何类型的控制结构(循环和函数)或数据结构(列表、字典等)之前,您必须学习如何编写基本表达式和语句。花上几个小时,这样你就不必在如何编写单个数学计算或列表迭代方面不断寻求帮助。我想我遇到的问题是。我想把这个数字乘以2.5(常数),即使我们向左移动时没有正值或负值。我们有10*2.5+下一个数字,也就是34。现在,下一个数字是负数,所以我想做34*2.5。即使“时间”没有正数,我也需要将常数相乘,然后向左移动。我该怎么做?请看我之前关于学习语言基础的评论。因此,这不是一个让别人编写程序的地方,一次编写一两行。这是您在一个标题下提出的第三个不同的问题。请您通过以下链接帮助我回答问题:
time = range(10)
value = [213, -999, 456, -1100, -16, 5, 42, -80, 9, 10]

last_neg = 0
for i in range(len(value)-1, -1, -1):   # Go through the list in reverse order
    if value[i] < 0:
        value[i] += last_neg
        last_neg = value[i]

last_pos = 0
for i in range(len(value)-1, -1, -1):   # Go through the list in reverse order
    if value[i] > 0:
        value[i] += last_pos
        last_pos = value[i]

print "pos & neg sums", value[0], value[1]
value[0] += value[1]

print "grand sum", value[0]

print "Check the summation:", value
pos & neg sums 735 -2195
grand sum -1460
Check the summation: [-1460, -2195, 522, -1196, -96, 66, 61, -80, 19, 10]