python数组拆分_根据Python中的数组值拆分数组

我有一个像这样的坐标数组:

array = [[1,6],[2,6],[3,8],[4,10],[5,6],[5,7],[18,6],[19,5],[17,9],[10,5]]

我想将数组在6.和7.之间分割坐标([5,7],[18,6]),因为那里的X值存在间隙.我想得到两个独立的数组,arr1和arr2,其中arr1是拆分前的值,arr2是后面的值.

我想说,如果下一个X值大于10的差值,它将附加到arr2,否则为arr1,如下所示:

arr1 = []

arr2 = []

for [x,y] in array:

if next(x) > 10:

arr2.append(x,y)

else:

arr1.append(x,y)

有人可以帮我解决这个问题吗?

解决方法:

您可以执行以下操作:

ar = np.array([[1,6],[2,6],[3,8],[4,10],[5,6],[5,7],[18,6],[19,5],[17,9],[10,5]])

# get differences of x values

dif = ar[1:, 0] - ar[:-1, 0]

# get the index where you first observe a jump

fi = np.where(abs(dif) > 10)[0][0]

ar1 = ar[:fi+1]

ar2 = ar[fi+1:]

那么dif将是:

array([ 1, 1, 1, 1, 0, 13, 1, -2, -7])

fi将是5,ar1和ar2将是:

array([[ 1, 6],

[ 2, 6],

[ 3, 8],

[ 4, 10],

[ 5, 6],

[ 5, 7]])

array([[18, 6],

[19, 5],

[17, 9],

[10, 5]]),

分别.

这也可以让你获得数据中的所有跳转(你只需要改变fi = np.where(abs(dif)> 10)[0] [0]到fi = np.where(abs(dif)) > 10)[0])

标签:python,arrays,split

来源: https://codeday.me/bug/20190527/1164520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值