Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除数组中的连续元素_Python_Numpy - Fatal编程技术网

Python 删除数组中的连续元素

Python 删除数组中的连续元素,python,numpy,Python,Numpy,给定一个带有排序整数的数组。我想删除数组中的连续数字。例如: import numpy as np array = np.array([1,2,3,6,9,13,14,15,20,25]) Expected output: [3,6,9,13,15,20,25] 您给出的预期输出有点含糊不清,为什么包含13个而不包含1个 无论如何,一个接近您所需的解决方案是: output = array[0:-1][array[1:]-array[0:-1] != 1] 我们开始: mask_array

给定一个带有排序整数的数组。我想删除数组中的连续数字。例如:

import numpy as np
array = np.array([1,2,3,6,9,13,14,15,20,25])

Expected output:
[3,6,9,13,15,20,25]

您给出的预期输出有点含糊不清,为什么包含13个而不包含1个

无论如何,一个接近您所需的解决方案是:

output = array[0:-1][array[1:]-array[0:-1] != 1]
我们开始:

mask_array = np.diff(array, append=False)==1 #
if len(mask_array)>1: 
    mask_array[-1] = mask_array[-2]
array[~mask_array]
输出:

array([ 3,  6,  9, 15, 20, 25])

您还可以使用以下选项:

def filter(array):
    new_array = []
    for i in range(len(array) - 1):
        if array[i+1] - array[i] != 1:
            new_array.append(array[i])
    if array[-1] - array[-2] != 1:
        new_array.append(array[-1])
    return new_array

第一个
1
的规则是什么?如果它是序列的一部分,请删除第一个值(此处:1)。否则,保留它。为什么保留13?
array[1:]-array[0:-1]==np.diff(array)