如何堆叠'numpy masked array'和'numpy array'

时间:2013-11-15 21:06:19

标签: python arrays numpy

我有两个numpy数组:

A  = [ 186.,  176., 158.,  180.,  186.,  168.,  168.,  164.,  178.,  170.,  189.,  195.,
       172.,  187., 180.,  186.,  185.,  168.,  179.,  178.,  183.,  179.,  170.,  175.]

B = [  -1., 60., 45., 58., 70., 70., 60., 64., 68., 78., 80., 78.,
       66., 74., 84., 85., 75., 60., 71., 67., 88., -1., 70., 60.]

我想只堆叠正值,我不知道怎么做?

我使用numpy蒙面数组来屏蔽B中的“ -1

谢谢

3 个答案:

答案 0 :(得分:4)

假设您要为a的每个位置堆叠bb>=0

check = (b>=0)
c = np.vstack((a[check], b[check]))

应该做的工作......

答案 1 :(得分:0)

也许使用无符号值?

unsigned int array[2] = {0, 1};

http://en.wikipedia.org/wiki/Integer_(computer_science)#value_and_representation

答案 2 :(得分:0)

如果您只需要堆叠一维数组,并且从B中删除负数将使其形状与A相同,则应该可以使用:

np.vstack( (A, B[B >= 0.0]) )