Не ясно, чего вы пытаетесь достичь. В вашем примере нет двух списков.
Похоже, вы пытаетесь сделать одну из следующих двух вещей:
- Добавить первый и последний элемент (раз 5) ко всем элементам массива
- Добавьте значение предыдущего и следующего элементов (раз 5) к каждому элементу
Для первой цели вы бы добавляли только скаляры в массив, поэтому вы не должны заключать первый / последний элементы в квадратных скобках:
import numpy as np
x= np.random.uniform(0, 1, 1000)
x = x[0]*5 + x + x[-1]*5
для второй цели, вы можете сделать это, используя присвоения копии массива:
y = x.copy()
y[:-1] += 5*x[1:]
y[1:] += 5*x[:-1]
[EDIT] на основе комментария ОП, ему нужно набивать по 5 с каждой стороны. функция np.pad () может сделать это напрямую:
x = np.pad(x,(5,5),mode="edge")
пример:
a = np.array([7,8,9])
np.pad(a,(5,5),mode="edge")
# array([7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 9, 9, 9])