如何逐个读取列的元素以检查它们是否符合某个条件?

-1.4221738 -1.4874885 -1.4994459 -1.5108121 -1.5219439 -1.5332919 -1.5452454 -1.5580290 4.7115221 4.6972045 4.6825012 4.6677902

比方说,我有一个像以前一样的数据文件。如何一个接一个地读取列的元素并将它们相互比较以匹配某个条件?例如,如果我想在数字突然跳跃时在第 8 行之后保持相同的值(-1.5580290),我该如何在 bash 或 python 中设置它?

我试图将数字保存在一个数组中,并尝试在 bash 中遍历它们。但是,我不确定该怎么做。


慕工程0101907
浏览 171回答 2
2回答

牧羊人nacy

假设您的完整数据文件的路径是 PATH。每个数字都单独写在一行中。file = open(PATH, "r")list = []max_jump = 0.2for line in file:    list.append(float(line)) for i in range(1, length(list)):    if abs(list[i - 1] - list[i]) > max_jump:        list[i] = list[i - 1]    else:        continue 您可以根据需要修改 max_jump。

慕慕森

使用 bash 脚本,我能够确定每个数字是否遵循特定条件,例如,正数或负数,我将这些数字保存在一个数组中。arraylength=${#ARRAY[@]}for (( i=1; i<${arraylength}+1; i++ ))do&nbsp; &nbsp; &nbsp; &nbsp;st=echo "${ARRAY[$i-1]} < 0.0" | 公元前&nbsp; &nbsp; &nbsp; &nbsp;if [ $st -eq 1 ]; then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;recog=negative&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo "$recog" " " ${ARRAY[$i-1]}&nbsp; &nbsp; &nbsp; &nbsp;else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;recog=positive&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo $recog " " ${ARRAY[$i-1]}&nbsp; &nbsp; &nbsp; &nbsp;fidone但是,我需要能够根据条件比较 ARRAY 中的第 i 个值和第 (i-1) 个/(i+1) 个值,并且该代码似乎无法正常工作。任何有关如何在 shell 或 python 中执行此操作的帮助将不胜感激。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python