Удалить элемент из массива NumPy - PullRequest
0 голосов
/ 07 июня 2018

Я работаю с numpy array следующим образом:

  input_series =  ['BUY' 'SELL' 'BUY' 'SELL' 'BUY' 'SELL' 'SELL' 'SELL' 'BUY' 'SELL' nan nan
     nan nan nan nan nan nan nan]

Я ищу конкретные значения в массиве, и если элемент существует, удалите

Я сделал это следующим образом:

delete_indices = list()
val = ['BUY','SELL','No','YES']
found_index = np.where(lowercase_series_nparray == val)                                                
delete_indices.append(found_index)

delete_indices получается следующим образом:

[(array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([0, 2, 4, 8], dtype=int64),), (array([1, 3, 5, 6, 7, 9], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),)]

С помощью которого я пытаюсь удалить:

new_output_series = numpy.delete(input_series, delete_indices)

Но получаю ошибку как setting an array element with a sequence.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Если из такого массива:

input_series = np.array(['BUY', 'a', 'b', 'SELL', 'YES', 'SELL', 'No', 'c', 'd', 'SELL'])

вы хотите удалить эти элементы:

['BUY','SELL','No','YES']

Просто установите их как массив:

val = np.array(['BUY','SELL','No','YES'])

а затем:

new_output_series = np.setdiff1d(input_series,val)

Вывод:

 ['a' 'b' 'c' 'd']
0 голосов
/ 07 июня 2018

Ниже вы найдете нужные вам индексы:

 found_index = np.in1d(input_series, val).nonzero()[0]

, а затем:

 new_array = numpy.delete(input_series, found_index)
...