Удалить значения из массива numpy ближе друг к другу - PullRequest
0 голосов
/ 14 декабря 2018

На самом деле я хочу удалить элементы из массива numpy, которые расположены ближе друг к другу. Например, у меня есть массив [1,2,10,11,18,19], затем мне нужен код, который может выдавать вывод, например [1,10,18], потому что 2 ближе к 1 и т. Д.на.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Вот простая функция, позволяющая найти первые значения ряда последовательных значений в одномерном массиве.

import numpy as np

def find_consec(a, step=1):
    vals = []
    for i, x in enumerate(a):
        if i == 0:
            diff = a[i + 1] - x
            if diff == step:
                vals.append(x)
        elif i < a.size-1:
            diff = a[i + 1] - x
            if diff > step:
                vals.append(a[i + 1])
    return np.array(vals)

a = np.array([1,2,10,11,18,19])
find_consec(a) # [1, 10, 18]
0 голосов
/ 14 декабря 2018

Добро пожаловать в stackoverflow.ниже приведен код, который может ответить на ваш вопрос:

def closer(arr,cozy):
    result = []
    result.append(arr[0])
    for i in range(1,len(arr)-1):
        if arr[i]-result[-1]>cozy:
            result.append(arr[i])
    print result           

Пример:

a = [6,10,7,20,21,16,14,3,2]
a.sort()
closer(a,1)
output : [2, 6, 10, 14, 16, 20]
closer(a,3)
Output: [2, 6, 10, 14, 20]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...