【问题标题】:python subtraction with list, without the first onepython减法与列表,没有第一个
【发布时间】:2021-07-01 20:31:10
【问题描述】:

我想减去这两个列表。但是,没有第一个(没有 0,1621 和 0) 我该怎么办?

part1 = [0.16217332 0.31666873 0.51007364 0.66299792 0.83379235 1.        ]
part2 = [0.         0.26212295 0.42225925 0.61941848 0.81022938 1.        ]

我想要减法[(0.31666873-0.26212295) (0.51007364-0.42225925) (0.66299792-0.61941848) (0.83379235-0.81022938) (1-1)] 使用 Python

【问题讨论】:

  • 你有没有试过任何东西?到底是什么问题?
  • 你在使用 pandas.DataFrame 吗?您的帖子带有数据框标签,但不是 Pandas。
  • 将列表推导与 zip 和枚举结合使用。
  • 您也可以将列表转换为 numpy 数组并以这种方式减去它们

标签: python list dataframe arraylist subtraction


【解决方案1】:

有很多方法可以解决这个问题,例如:

part1 = [0.16217332, 0.31666873, 0.51007364, 0.66299792, 0.83379235, 1.0  ]
part2 = [0.0,         0.26212295, 0.42225925, 0.61941848, 0.81022938, 1.0]

r = [part1[i] - part2[i] for i in range(1,len(part1)) ]

print(r)

【讨论】:

    【解决方案2】:

    这是一个使用 numpy 的解决方案,它允许对两个数组进行矢量化减法:

    part1 = [0.16217332, 0.31666873, 0.51007364, 0.66299792, 0.83379235, 1.0  ]
    part2 = [0.0,         0.26212295, 0.42225925, 0.61941848, 0.81022938, 1.0]
    
    p1 = np.asarray(part1[1:])
    p2 = np.asarray(part2[1:])
    result = list(p1-p2)
    
    #[0.05454577999999999, 0.08781439000000002, 0.043579440000000025, 0.02356296999999996, 0.0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2021-10-12
      • 2020-02-27
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多