a = np.arange(12).reshape(4,3) a b = np.array([True, False, True, False]) a[b,:] a[b] b = np.array([True, False, True]) a[b,:] b = [True, False, True, False] a[b], a[b,:] b = [0, 2] a[b,:] a = np.arange(16).reshape((2,2,4)) a b = np.array([[True, False], [True, False]]) a[b,:] a[[0,1], [0, 0], :] a[b.nonzero()] a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) a_ = a[..., np.newaxis] b_ = b[..., np.newaxis] c = np.concatenate((a_, b_), 2) c c = np.array([a, b]) c np.rollaxis(c,0,3)