2015-11-25 2 views
0

Скажем, у меня есть два массива len(1000) каждыйВыбор второй массив, основанный на первом одном

array_a = np.array([1,2,3,....,1000]) # length of 1000 
array_b = np.array([32344,83242,94323,....,48984]) # length of 1000 

Теперь я выбираю подмножество array_a на основе определенных условий:

subset_a = array_a[(array_a>10) * (array_a<500)] 

сейчас как я могу выбрать те значения array_b, которые относятся к вышеуказанным subset_a?

Я попытался

subset_b = array_b[subset_a] 

, но я получаю ошибку

IndexError: arrays used as indices must be of integer (or boolean) type 
+0

Так, в принципе, вы хотите, чтобы получить некоторые пары значений на основе выбора диапазона значений первой части. Итак, скажем, что-то вроде [(1,32344), (2,83242)]? – albert

+0

@albert: Да, я делаю – user3397243

+0

Вам разрешено использовать 'pandas'? – albert

ответ

2

Вы ищете это?

import numpy as np 

array_a = np.array([1,2,3,4,5]) # length of 5 
array_b = np.array([6,7,8,9,10]) # length of 5 

condition = array_a>3 
print condition 
subset_a = array_a[condition] 
print subset_a 
subset_b = array_b[condition] 
print subset_b 

http://ideone.com/dAFLYL

+0

, но в этом случае 'subset_a' становится логическим правым ? Я хочу использовать как 'subset_a', так и' subset_b' для построения графика. Я хочу, чтобы они были числами. Есть ли другой способ сделать это, не вызывая 'subset_a' дважды? то есть один раз в качестве логического, а во-вторых, как массив с условием? – user3397243

+0

Я обновил ответ, чтобы сделать его более очевидным –

Смежные вопросы