【问题标题】:how to remove a sublist stored in a list in python如何删除存储在python列表中的子列表
【发布时间】:2021-03-24 09:40:01
【问题描述】:

我想使用 numpy 数组创建一个列表。我想导出数组中值的差异以及这个数组的第一个值:

my_array=np.array([1, 4, 10])

首先我找出不同之处:

differs=np.diff(my_array)

它给了我:

array([3, 6])

但我想拥有:

[1, 3, 6]

我尝试了以下方法:

sep=[my_array[0], np.diff(my_array)]

但它给了我:

[1, array([3, 6])]

我也尝试将数组转换为列表,但我有一个子列表,我不知道如何只将该子列表的数字复制到我的主列表中。为此,我尝试了:

sep=[my_array[0], [i for i in  np.diff(my_array)]]

它给了我:

[1, [3, 6]]

在此先感谢您的帮助。

【问题讨论】:

    标签: python arrays list numpy


    【解决方案1】:

    你在正确的轨道上,你只需要添加prepend参数来分配起始值:

    np.diff(my_array, prepend=0)
    array([1, 3, 6])
    

    【讨论】:

      【解决方案2】:

      我会在喂给numpy.diff之前添加0,即:

      import numpy as np
      my_array=np.array([1, 4, 10])
      differs=np.diff(np.hstack(([0],my_array)))
      print(differs)
      

      输出:

      [1 3 6]
      

      请注意,这仅基于您的单个输入-期望的输出对,因此请针对您可能遇到的其他情况测试此灵魂,并编写它是否符合您的要求,如果不是实际输出和期望的输出。

      【讨论】:

        【解决方案3】:

        尝试:

        sep=[my_array[0], *np.diff(my_array)]
        

        [1, 3, 6]
        

        【讨论】:

          【解决方案4】:

          numpy.diff 有一个参数:

          my_array=np.array([1, 4, 10])
          res = np.diff(my_array,prepend=0)
          

          输出:

          [1 3 6]
          

          【讨论】:

            猜你喜欢
            • 2020-10-06
            • 1970-01-01
            • 2021-03-20
            • 2023-03-26
            • 1970-01-01
            • 2016-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多