为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕工程0101907 2022-05-11 16:33:38
-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 中遍历它们。但是,我不确定该怎么做。
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

假设您的完整数据文件的路径是 PATH。每个数字都单独写在一行中。


file = open(PATH, "r")

list = []

max_jump = 0.2

for 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。


查看完整回答
反对 回复 2022-05-11
?
慕慕森

TA贡献1856条经验 获得超17个赞

使用 bash 脚本,我能够确定每个数字是否遵循特定条件,例如,正数或负数,我将这些数字保存在一个数组中。


arraylength=${#ARRAY[@]}

for (( i=1; i<${arraylength}+1; i++ ))

do

       st=echo "${ARRAY[$i-1]} < 0.0" | 公元前

       if [ $st -eq 1 ]; then

               recog=negative

               echo "$recog" " " ${ARRAY[$i-1]}

       else

               recog=positive

               echo $recog " " ${ARRAY[$i-1]}

       fi

done


但是,我需要能够根据条件比较 ARRAY 中的第 i 个值和第 (i-1) 个/(i+1) 个值,并且该代码似乎无法正常工作。任何有关如何在 shell 或 python 中执行此操作的帮助将不胜感激。


查看完整回答
反对 回复 2022-05-11
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号