Поскольку представления памяти могут быть созданы только с использованием фиксированного набора strides
, вам придется создать копию в вашем случае, где mat.shape[0] > j > i
.
Это означает, что представления будут работать, только если вы хотите иметь представление для каждого x-го элемента в массиве:
mat = np.arange(20)
view = mat[slice(0, 20, 4)]
view
# Out[41]: array([ 0, 4, 8, 12, 16])
Так что это работает только для представлений с одинаково расположенными ячейками. Но если вы хотите просмотреть один смежный slice(0, i)
и другой смежный slice(j, mat.shape[0])
, он не сработает. Вам нужно будет сделать копию.