Arrays 基于行将二维numpy数组拆分为块

Arrays 基于行将二维numpy数组拆分为块,arrays,python-3.x,numpy,split,Arrays,Python 3.x,Numpy,Split,我有一个csv文件中的数据块,我已将其转换为x、y和z值的numpy数组。数据是一系列的行,我组织了数据,使这些行按x值排序,然后按y值排序,从而得到我想要的正确顺序 我遇到的问题是,这些数据包含一系列行,我想将数组拆分为块,并为我可以处理的每一行划分一个部分。我有一些代码可以找到拆分阵列所需的点: 对于0范围内的i,数组长度: 如果数据_排序[i][0]==数据_排序[i+1][0]: 通过 其他: 打印拆分 其中data_sort包含我的数组,代码检查列中的值是否更改。如果连续列值发生更改,

我有一个csv文件中的数据块,我已将其转换为x、y和z值的numpy数组。数据是一系列的行,我组织了数据,使这些行按x值排序,然后按y值排序,从而得到我想要的正确顺序

我遇到的问题是,这些数据包含一系列行,我想将数组拆分为块,并为我可以处理的每一行划分一个部分。我有一些代码可以找到拆分阵列所需的点:

对于0范围内的i,数组长度: 如果数据_排序[i][0]==数据_排序[i+1][0]: 通过 其他: 打印拆分 其中data_sort包含我的数组,代码检查列中的值是否更改。如果连续列值发生更改,我需要拆分数组。这张照片只是用来测试我的分割次数是否正确

是否有人有一种很好的方法可以做到这一点,而不需要知道所需的最终阵列大小

编辑 如果输入数据为:

array([[-0.18798 ,  0.028104, -0.14745 ],
   [-0.18798 ,  0.028214, -0.14732 ],
   [-0.11279 ,  0.028188, -0.21054 ],
   [-0.11279 ,  0.028214, -0.21052 ],
   [-0.18798 ,  0.028214,  0.14732 ],
   [-0.18798 ,  0.028104,  0.14745 ],
   [-0.037596,  0.028   , -0.23602 ],
   [-0.037596,  0.028214, -0.23585 ],
   [ 0.      ,  0.028   , -0.23899 ],
   [ 0.      ,  0.028214, -0.23883 ]])
我希望将阵列拆分为以下方式:

    [array([[-0.18798 ,  0.028104, -0.14745 ],
        [-0.18798 ,  0.028214, -0.14732 ],
        [-0.11279 ,  0.028188, -0.21054 ],
        [-0.11279 ,  0.028214, -0.21052 ],
        [-0.18798 ,  0.028214,  0.14732 ]]),
    array([[-0.18798 ,  0.028104,  0.14745 ],
        [-0.037596,  0.028   , -0.23602 ],
        [-0.037596,  0.028214, -0.23585 ],
        [ 0.      ,  0.028   , -0.23899 ],
        [ 0.      ,  0.028214, -0.23883 ]])]
这是使用np.splittest 2完成的,但这只是将数组拆分为偶数块

您可以使用np.split,如下所示

假设要将阵列拆分为4组。 组1-索引0到1 第2组-索引2至3 第3组-索引4至8 第4组-指数9至10

那你就可以了

np.split(arr, [1,3,8])
这将给

[array([[-0.18798 ,  0.028104, -0.14745 ]]), array([[-0.18798 ,  0.028214, -0.14732 ],
       [-0.11279 ,  0.028188, -0.21054 ]]), array([[-0.11279 ,  0.028214, -0.21052 ],
       [-0.18798 ,  0.028214,  0.14732 ],
       [-0.18798 ,  0.028104,  0.14745 ],
       [-0.037596,  0.028   , -0.23602 ],
       [-0.037596,  0.028214, -0.23585 ]]), array([[ 0.      ,  0.028   , -0.23899 ],
       [ 0.      ,  0.028214, -0.23883 ]])]

这不是我真正想要的,我会编辑帖子以显示所需的输出,但我已经知道拆分阵列的位置。如果你已经知道要拆分的索引,为什么不直接将这些索引传递给np.split,或者我仍然缺少一些东西呢?我认为n.split不允许您指定分割的位置,而是指定块的数量,但我可能错了。您可以将索引指定为数组