在python中使用numpy在一列中标识具有相同值的向量

我有一个大的2d矢量数组.我想根据矢量的元素或维度之一将这个数组拆分成几个数组.如果此列中的值连续相同,我希望收到一个这样的小数组.例如,考虑第三维或列:

orig = np.array([[1, 2, 3], 
                 [3, 4, 3], 
                 [5, 6, 4], 
                 [7, 8, 4], 
                 [9, 0, 4], 
                 [8, 7, 3], 
                 [6, 5, 3]])

我想变成三个由1,2和3,4,5和6,7行组成的数组:

>>> a
array([[1, 2, 3],
       [3, 4, 3]])

>>> b
array([[5, 6, 4],
       [7, 8, 4],
       [9, 0, 4]])

>>> c
array([[8, 7, 3],
       [6, 5, 3]])

我是python和numpy的新手.任何帮助将不胜感激.

问候

编辑:我重新格式化了数组以澄清问题

最佳答案 使用
np.split

>>> a, b, c = np.split(orig, np.where(orig[:-1, 2] != orig[1:, 2])[0]+1)

>>> a
array([[1, 2, 3],
       [1, 2, 3]])
>>> b
array([[1, 2, 4],
       [1, 2, 4],
       [1, 2, 4]])
>>> c
array([[1, 2, 3],
       [1, 2, 3]])
点赞