根据行将2D numpy数组拆分为块

我有一个csv文件中的数据块,我已将其转换为x,y和z值的numpy数组。数据是一系列的行,因此我对数据进行了组织,以便按x和y值对行进行排序,从而获得我想要的正确顺序。

我的问题是此数据包含一系列行,我想将数组拆分为块,以便我可以处理的每一行。我有一些代码可以找到分割数组所需的点:

for i in range(0,array_len):
    if data_sort[i][0] == data_sort[i+1][0]:
        pass
    else:
        print("split")

其中data_sort包含我的数组,并且代码检查列中的值是否更改。连续的列值更改的地方,我需要拆分数组。印刷品就在那里测试我是否有正确的分割数。

有人不需要知道所需的最终阵列大小吗?

编辑 如果输入数据是:

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

我想将数组拆分为以下方式:

    [array([[-0.18798,0.14732 ]]),array([[-0.18798,-0.23883 ]])]

这是使用np.split(test,2)完成的,但这只是将数组拆分为偶数块

jsbuyun26 回答:根据行将2D numpy数组拆分为块

您可以如下所示使用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.21052 ],[-0.18798,0.14732 ],0.14745 ],[-0.037596,0.028,-0.23602 ],-0.23585 ]]),array([[ 0.,-0.23899 ],[ 0.,-0.23883 ]])]
本文链接:https://www.f2er.com/3064289.html

大家都在问