python - 如何使用多个索引多次拆分 numpy 数组?
问题描述
我想在不同的索引处多次拆分数组。
例子:
y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我想在索引 2、4、7 处拆分此数组以生成以下结果:
res = [[[0, 1], [2, 3, 4, 5, 6, 7, 8, 9]],
[[0, 1, 2, 3], [4, 5, 6, 7, 8, 9]],
[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9]]]
我尝试使用 numpy.split 但它似乎只能拆分一次,而不是多次拆分以生成结果矩阵。有没有办法使用 numpy 的矢量化操作而不使用循环来做到这一点?
解决方案
我认为没有矢量化运算符。结果本身不是典型的矩阵,因为它不是矩形的。或者,您可以简单地使用列表推导。
y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
split_at = [2, 4, 7]
output = [[y[:x], y[x:]] for x in split_at]
print(output) # [[[0, 1], [2, 3, 4, 5, 6, 7, 8, 9]], [[0, 1, 2, 3], [4, 5, 6, 7, 8, 9]], [[0, 1, 2, 3, 4, 5, 6], [7, 8, 9]]]
推荐阅读
- c - C中的学习数组
- ruby-on-rails - 从元素中选择选项 | 黄瓜测试 Ruby On Rails
- datatables - 更新表时运行 DataTables 的 ajax() 函数
- html - 如何使用 jquery 设置 div 的位置?
- java - Android 用户登录与改造
- redirect - 如何使用 .Htaccess 将移动版本重定向到计算机版本
- javascript - 试图在 TypeScript 中找到 if/else 语句的动态替代方案
- python - 数据基数是 Keras 中的模棱两可的错误
- function - 识别给定包/文件中的函数
- git - VS 代码源控制充满垃圾文件