Python数组拆分:按递增元素切分为两个子数组的实现方法
解决数组逐步拆分的方法
纯Python原生实现
不用依赖额外库就能搞定,直接通过切片循环即可:
a = [0,1,2,3] # 循环从第1个元素后到倒数第1个元素后的位置拆分 for i in range(1, len(a)): left_sub = a[:i] right_sub = a[i:] print(left_sub, right_sub)
运行后会输出你要的结果:
[0] [1,2,3] [0,1] [2,3] [0,1,2] [3]
如果需要把所有拆分结果存成列表,用列表推导式更简洁:
a = [0,1,2,3] split_results = [(a[:i], a[i:]) for i in range(1, len(a))]
NumPy实现(适配你常用的np.split)
np.split完全能处理这个场景,只要循环指定不同的分割索引就行:
import numpy as np a = np.array([0,1,2,3]) # 分割索引从1到数组长度减1,每次切分成两部分 for split_idx in range(1, len(a)): left_arr, right_arr = np.split(a, [split_idx]) print(left_arr, right_arr)
这里的关键是np.split的第二个参数传[split_idx],表示在索引split_idx的位置将数组切分为两部分。循环遍历所有需要的分割点,就能得到所有预期的拆分结果。
同样,要存储所有结果的话:
import numpy as np a = np.array([0,1,2,3]) split_results = [np.split(a, [i]) for i in range(1, len(a))]
内容的提问来源于stack exchange,提问作者Keithx
相关产品推荐
相关产品推荐

