我有一个numpy的2D数组,我想根据列索引选择不同大小的数组范围。这是输入数组的示例。
我们可以将它们连接和展平以获得最终所需的输出。
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]]
那么,列表 b = [4,3,1]
确定了每个列切片的不同区间大小,以便我们得到以下数组
[0 3 6 9]
[1 4 7]
[2]
我们可以将它们连接和展平以获得最终所需的输出。
[0 3 6 9 1 4 7 2]
目前,为了完成这个任务,我正在使用以下代码
slices = []
for i in range(a.shape[1]):
slices.append(a[:b[i],i])
c = np.concatenate(slices)
如果可能的话,我希望你能将其转换为Python风格的格式。
奖励:相同的问题,但现在考虑到b
决定行切片而不是列。
< b
会隐式执行数组乘积和比较,对吗? - xicocaio5x3
数组。但标准偏差表明第一种方法会更好地扩展。 - Prox