如何删除python中存储在列表中的子列表
我想使用numpy数组创建一个列表。我想导出数组中值的差异以及此数组的第一个值:如何删除python中存储在列表中的子列表,python,arrays,list,numpy,Python,Arrays,List,Numpy,我想使用numpy数组创建一个列表。我想导出数组中值的差异以及此数组的第一个值: my_array=np.array([1, 4, 10]) 首先,我找出两者的区别: differs=np.diff(my_array) 它给了我: array([3, 6]) [1, array([3, 6])] 但我想: [1, 3, 6] 我尝试了以下方法: sep=[my_array[0], np.diff(my_array)] 但它给了我: array([3, 6]) [1, array([
my_array=np.array([1, 4, 10])
首先,我找出两者的区别:
differs=np.diff(my_array)
它给了我:
array([3, 6])
[1, array([3, 6])]
但我想:
[1, 3, 6]
我尝试了以下方法:
sep=[my_array[0], np.diff(my_array)]
但它给了我:
array([3, 6])
[1, array([3, 6])]
我还试图将数组转换成一个列表,但我有一个子列表,我不知道如何只将该子列表的编号复制到我的主列表中。为此,我尝试:
sep=[my_array[0], [i for i in np.diff(my_array)]]
它给了我:
[1, [3, 6]]
在此之前,我非常感谢您的帮助。我会在馈送到
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]
[1 3 6]
请注意,这仅基于您的单个输入-期望输出对,因此请测试此解决方案,以了解您可能遇到的其他情况,并编写它是否符合您的要求,如果不符合实际输出和期望输出。请尝试:
sep=[my_array[0], *np.diff(my_array)]
numpy.diff
有一个参数:
my_array=np.array([1, 4, 10])
res = np.diff(my_array,prepend=0)
输出:
[1 3 6]
[1 3 6]
您正处于正确的轨道上,只需添加参数来指定起始值:
np.diff(my_array, prepend=0)
array([1, 3, 6])