我有一个开始和停止索引数组,如下所示:
[[0, 3], [4, 7], [15, 18]]
我想构造一个2D numpy数组,其中每一行都是对应的开始和停止索引对的范围,如下所示:
[[0, 1, 2],
[4, 5, 6],
[15, 16, 18]]
目前,我正在创建一个空数组并将其填充到for循环中:
ranges = numpy.empty((3, 3))
a = [[0, 3], [4, 7], [15, 18]]
for i, r in enumerate(a):
ranges[i] = numpy.arange(r[0], r[1])
有没有更紧凑(更重要)更快的方法?可能是不需要使用循环的东西?你知道吗
如果范围导致不同的长度,对于向量化方法,可以使用链接解决方案中的^{} :
这也适用于以下数组:
一种方法是使用广播将左手边添加到基本排列:
注意:这要求所有范围的长度相同。你知道吗
相关问题 更多 >
编程相关推荐