2015-05-08 3 views
1

У меня есть два массива в NumPyУдалить из Numpy массивов

a = np.array([]) 
b = np.array([]) 

Этих массивы заселяются в коде с липкими значениями. Но теперь я хочу удалить элементы из обоих массивов, где значения в a больше числа 5.

Я предполагаю, что это что-то вроде

a = a[~a>5] 

, но я не знаю, как удалить элемент с точно таким же индексом в массиве b.

+1

вы можете установить такой индекс 'IX = а <= 5', а затем' а = [IX] и 'B = B [ ix] '(или сделать это в одной строке' a = a [a <= 5] ' – paddyg

+0

Отлично. Спасибо! – Jamgreen

ответ

0

Вы можете использовать np.extract, чтобы выбрать конкретные элементы и снова переназначен в массив:

>>> x = np.arange(10) 
>>> x=np.extract(x<5,x) 
>>> x 
array([0, 1, 2, 3, 4]) 

numpy.extract (состояние, обр)

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

Вы также можете использовать индексацию для такой задачи:

>>> x = np.array([3,4,7,11,0,34,6,1,3,4,2]) 
>>> x[x<5] 
array([3, 4, 0, 1, 3, 4, 2]) 
>>> np.extract(x<5,x) 
array([3, 4, 0, 1, 3, 4, 2]) 
Смежные вопросы