2015-11-25 40 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)] 

现在如何选择属于上述subset_aarray_b的值?

我试图

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'变为boolean right ?我想同时使用'subset_a'和'subset_b'进行绘图。所以我希望它们是数字。有没有其他的方式做这个,而不调用'subset_a'两次?即一次作为布尔值,其次作为一个条件的数组? – user3397243

+0

我已经更新了答案,使其更加明显 –

相关问题