【发布时间】:2021-03-08 19:29:08
【问题描述】:
对于一个 numpy 一维数组,例如:
In [1]: A = np.array([2,5,1,3,9,0,7,4,1,2,0,11])
In [2]: A
Out[2]: array([2,5,1,3,9,0,7,4,1,2,0,11])
我需要使用值作为子数组长度来拆分数组。
对于示例数组:
- 第一个索引的值为 2,因此我需要在索引 0 + 2 处进行第一次拆分,这样会导致 ([2,5,1])。
- 跳到索引 3(因为索引 0-2 在第 1 步中被吞噬了)。
- 索引 3 = 3 处的值,因此第二次拆分将发生在索引 3 + 3 处,结果为 ([3,9,0,7])。
- 跳至索引 7
- 索引 7 = 4 处的值,因此第三次也是最后一次拆分将发生在索引 7 + 4 处,结果为 ([4,1,2,0,11])
我使用这个简单的数组作为示例,因为我认为它在我的实际用例中会有所帮助,即从二进制文件中读取数据(作为字节或无符号短裤)。我猜 numpy 将是最快的方法,但我也可以使用 struct/bytearray/lists 或任何最好的方法。
我希望这是有道理的。我很难弄清楚如何最好地表达这个问题。
【问题讨论】: