Я не на 100% уверен, что вы имеете в виду, когда не повторяете данные 1000 раз.Если вы ищете простой способ построения b
из a
одним махом (а не зацикливанием), вы можете использовать:
a = np.arange(1000)
b = np.tile(a,1000)
В противном случае я бы сделал что-то вроде:
a = np.arange(1000)
ii = [700,2000,10000] # The indices you want of the tiled array
b = a[np.mod(ii,a.size)]
b
в этом случае не является представлением a
из-за причудливого индексирования (оно создает копию), но, по крайней мере, возвращает пустой массив и не создает 1000 * 1000x1массив в памяти и просто содержит элементы, которые вы хотите.
Поскольку они являются неизменяемыми (см. Неизменяемый массив Numpy? ), вам нужно будет переключать флаг для каждого отдельно, поскольку копии не сохраняют настройку флага.