Эффективное построение 2D-массива Numpy из 1D массив

У меня есть массив вот так:

A = array([1,2,3,4,5,6,7,8,9,10])

И я пытаюсь получить такой массив:

B = array([[1,2,3],
          [2,3,4],
          [3,4,5],
          [4,5,6]])

Где каждая строка (фиксированной произвольной ширины) сдвигается на единицу. Массив A составляет 10 тыс. Записей, и я пытаюсь найти эффективный способ сделать это в Numpy. В настоящее время я использую vstack и цикл for, который работает медленно. Есть ли более быстрый способ?

Изменить:

width = 3 # fixed arbitrary width
length = 10000 # length of A which I wish to use
B = A[0:length + 1]
for i in range (1, length):
    B = np.vstack((B, A[i, i + width + 1]))
35
задан wxbx 7 February 2011 в 16:54
поделиться