如何基于另一列中的符号变化来计算列表中的数学差异

约翰22

我有一个很大的列表,如下所示:

515.20320783       0.05658324
516.20360241       0.03486690
517.20399699       0.02094333
518.20439157       0.02199200
519.20478615       0.03610312
520.20518073       0.05240170
521.20557530       0.05834678
522.20596988       0.04893050
523.20636446       0.02992211
524.20675904       0.01215849
525.20715362       0.00224414
526.20754820      -0.00168170
527.20794277      -0.00608658
528.20833735      -0.01532678
529.20873193      -0.02889651
530.20912651      -0.04376070
531.20952109      -0.05776619
532.20991567      -0.07066846
533.21031024      -0.08255477
534.21070482      -0.09145077
535.21109940      -0.09284463
536.21149398      -0.08325564

我首先需要根据第2列的值的符号变化来分离第1列的2个列表,这意味着第2列中对应的值为正的第1列的所有值都应在列表中,而第2列的值为在另一个列表中为负数。然后,我想计算子列表(之前创建的列表)的第一项和最后一项之间的差。我所做的工作在下面,但似乎不正确

import numpy as np

l = [f for f in sorted(os.listdir('.')) if f.startswith('config')]

maxnum = np.max([int(os.path.splitext(f)[0].split('_')[1]) for f in l])
l = ['configuration_%d.out' % i for i in range(maxnum)]
meand = []
meands=[]
for i, d in enumerate (CASES):
   a = np.loadtxt(os.path.join(root, directory,d)).T
   y = a[1]
   x = a[0]
   mig = np.abs(a[5])
   theta = a[3]
   s = a[2]
   h = min(y)+6
   t = max(y)-6
   meand = []
   for i in range(1,len(y)):
      if h <y[i]<t :
         idx = np.where(np.diff(np.sign(theta)) != 0)[0] + 1
                
         meand_length = s[idx]-s[idx-1]
                
                
         meand.append(meande_length)

    meands.append(np.mean(meand))
                
print(meands)
硬化的

使用numpy方法signnonzero

list1 = np.arange(0, 20, 2)
# array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18]
list2 = np.linspace(-1, 1, 10)
# ~ array([-1, -0.77, -0.55, -0.33, -0.11,  0.11,  0.33,  0.55,  0.77,  1.])

s = np.sign(list2)
# array([-1., -1., -1., -1., -1.,  1.,  1.,  1.,  1.,  1.])
idx_sign_change = np.nonzero(np.diff(s) != 0)[0]
# array([4])

split_lists = np.split(list1, idx_sign_change)
# [array([0, 2, 4, 6]), array([ 8, 10, 12, 14, 16, 18])]

diff = [l[-1] - l[0] for l in split_lists]
# [6, 10]

mean_diff = np.mean(diff)

请注意,如果有多个符号更改,这也将起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何基于MS Access中表中另一列的输入来限制“列表框”列中的项目?

来自分类Dev

如何基于单个更新查询的另一列中的值来更新一列中的值?

来自分类Dev

如何通过考虑另一列中的信息来计算一列中的平均值?

来自分类Dev

如何基于MySQL中的多个表计算一列

来自分类Dev

如何根据另一列的状态计算DATE的差异?

来自分类Dev

如何在另一列中引用值来增加一列中的值

来自分类Dev

如何在另一列中引用值来增加一列中的值

来自分类Dev

Python Pandas DataFrame-如何基于另一列(日期类型)中的部分匹配来对一列中的值求和?

来自分类Dev

如何根据另一列中的内容计算均值?

来自分类Dev

如何通过比较Tibco spot fire中另一列的字符串值来创建计算列

来自分类Dev

如何根据同一列中另一个值的出现来计算变量?

来自分类Dev

如何基于一列对df重新采样并从另一列中添加值?

来自分类Dev

从熊猫数据框中基于另一列的列的每个列表中删除元素

来自分类Dev

通过R中另一列的成对组合来计算一列的唯一值

来自分类Dev

通过计算熊猫另一列中的不同值来创建新列

来自分类Dev

尝试通过在另一列中查找正确的行来从一列中计算值

来自分类Dev

SQL如何基于另一列中的值在一行中多次选择列

来自分类Dev

Matlab脚本无法基于另一列中的值正确计算分类变量

来自分类Dev

如何基于2聚合列从R中的另一列中减去1列

来自分类Dev

SQL Server:如何对一列中的值进行数学计算

来自分类Dev

计算同一列中记录的差异

来自分类Dev

计算Spotfire中特定行的同一列的差异

来自分类Dev

如何创建引用另一个表中另一列的计算列?

来自分类Dev

计算基于另一列的一列的出现

来自分类Dev

如何基于另一列中的值将值移到新列中

来自分类Dev

如何在分组的 data.frame 中基于另一列中的 any() 填充列?

来自分类Dev

如何计算excel同一列中两个单元格之间的差异?

来自分类Dev

如何基于另一列中的索引来操作一列中的子字符串

来自分类常见问题

如何基于同一表中的另一列更新列

Related 相关文章

  1. 1

    如何基于MS Access中表中另一列的输入来限制“列表框”列中的项目?

  2. 2

    如何基于单个更新查询的另一列中的值来更新一列中的值?

  3. 3

    如何通过考虑另一列中的信息来计算一列中的平均值?

  4. 4

    如何基于MySQL中的多个表计算一列

  5. 5

    如何根据另一列的状态计算DATE的差异?

  6. 6

    如何在另一列中引用值来增加一列中的值

  7. 7

    如何在另一列中引用值来增加一列中的值

  8. 8

    Python Pandas DataFrame-如何基于另一列(日期类型)中的部分匹配来对一列中的值求和?

  9. 9

    如何根据另一列中的内容计算均值?

  10. 10

    如何通过比较Tibco spot fire中另一列的字符串值来创建计算列

  11. 11

    如何根据同一列中另一个值的出现来计算变量?

  12. 12

    如何基于一列对df重新采样并从另一列中添加值?

  13. 13

    从熊猫数据框中基于另一列的列的每个列表中删除元素

  14. 14

    通过R中另一列的成对组合来计算一列的唯一值

  15. 15

    通过计算熊猫另一列中的不同值来创建新列

  16. 16

    尝试通过在另一列中查找正确的行来从一列中计算值

  17. 17

    SQL如何基于另一列中的值在一行中多次选择列

  18. 18

    Matlab脚本无法基于另一列中的值正确计算分类变量

  19. 19

    如何基于2聚合列从R中的另一列中减去1列

  20. 20

    SQL Server:如何对一列中的值进行数学计算

  21. 21

    计算同一列中记录的差异

  22. 22

    计算Spotfire中特定行的同一列的差异

  23. 23

    如何创建引用另一个表中另一列的计算列?

  24. 24

    计算基于另一列的一列的出现

  25. 25

    如何基于另一列中的值将值移到新列中

  26. 26

    如何在分组的 data.frame 中基于另一列中的 any() 填充列?

  27. 27

    如何计算excel同一列中两个单元格之间的差异?

  28. 28

    如何基于另一列中的索引来操作一列中的子字符串

  29. 29

    如何基于同一表中的另一列更新列

热门标签

归档