Скажем, я сгенерировал последовательность значений, разделил их на предоставленный диапазон, а затем увеличил каждое значение в каждой строке на этот текущий идентификатор строки, а затем замаскировал некоторые значения за пределы требуемого диапазона, как показано ниже:
>>> range = 5
>>> matrix = np.arange(-5, 10, 1)
>>> matrix = np.tile(matrix, (range, 1))
>>> matrix = np.add(matrix, np.arange(0, range)[:, None])
>>> matrix = ma.masked_outside(matrix, 0, 10)
[[-- -- -- -- -- 0 1 2 3 4 5 6 7 8 9]
[-- -- -- -- 0 1 2 3 4 5 6 7 8 9 10]
[-- -- -- 0 1 2 3 4 5 6 7 8 9 10 --]
[-- -- 0 1 2 3 4 5 6 7 8 9 10 -- --]
[-- 0 1 2 3 4 5 6 7 8 9 10 -- -- --]]
Как бы вы лучше всего преобразовали вышеприведенный вывод в матрицу формата [non-masked value, row-id]
, то есть:
[0,0], [1, 0], [2,0] ... [10, 4]
Кроме того, является ли исходный код слишком расточительным для достижения конечного желаемого шага?