python - 使用列表中的索引在python中拆分数组
问题描述
我在 numpy 中有一个大小为 3 x 7 的二维数组:
[[1 2 3 4 5 6 7]
[4 5 6 7 8 9 0]
[2 3 4 5 6 7 8]]
我还有一个包含分裂点索引的列表:
[1, 3]
现在,我想使用列表中的索引拆分数组,这样我得到:
[[1 2]
[4 5]
[2 3]]
[[ 2 3 4]
[5 6 7]
[3 4 5]]
[[ 4 5 6 7]
[7 8 9 0]
[5 6 7 8]]
我怎样才能在python中做到这一点?
解决方案
您可以将列表理解与切片一起使用zip
,用于成对提取索引。
A = np.array([[1, 2, 3, 4, 5, 6, 7],
[4, 5, 6, 7, 8, 9, 0],
[2, 3, 4, 5, 6, 7, 8]])
idx = [1, 3]
idx = [0] + idx + [A.shape[1]]
res = [A[:, start: end+1] for start, end in zip(idx, idx[1:])]
print(*res, sep='\n'*2)
[[1 2]
[4 5]
[2 3]]
[[2 3 4]
[5 6 7]
[3 4 5]]
[[4 5 6 7]
[7 8 9 0]
[5 6 7 8]]
推荐阅读
- angular - 角度 6 中角度 jwt 的模块名称
- c++ - 双向链表 C++ 上的插入排序
- php - Symfony 错误:“在渲染模板期间引发了异常”
- javascript - 表单提交后的 document.querySelectorAll
- python - 最大化相等像素的模板匹配
- php - 如何在 laravel 5.6 中使用带有集合的 chunk() 从数据库中获取产品类别
- xml - 从 xml 字符串创建石英作业
- r - Loop R 的更好替代方案
- python - 给定一个 int 列表,打印一个长度为原来的两倍的新列表,其中最后一个元素与原始列表相同,并且所有其他元素都为 0
- python - Cplex Python 错误在基础行状态中出现错误