Нарежьте массив Numpy

#python #numpy

Вопрос:

У меня есть массив numpy, в котором есть отрицательные числа, за которыми следуют несколько положительных, а затем еще одно отрицательное число.

Вот пример

 arr = np.array([-1, 2, 4, 6, -2, 4, 6, 9, 3, -3, 45, 4, -4, 23, 45, 2])
 

Я хотел бы разделить массив таким образом, чтобы каждое отрицательное число и следующие положительные числа были по строке каждое.

 ([-1, 2, 4, 6,
  -2, 4, 6, 9, 3,
  -3, 45, 4,
  -4, 23, 45, 2])
 

Как я могу это сделать?

Спасибо

Комментарии:

1. Действительно непонятно, что вы имеете в виду. Вы просто пытаетесь напечатать свой массив определенным образом?

2. В отличие от списка списков, массив 2D numpy не может быть сформирован из массивов 1D разных размеров.

Ответ №1:

 print("([", end="")
last=0
for i in range(1,len(ar)):
  if i < 0:
    print("  " ", ".join(ar[last:i]))
    last=i 1
  elif last = i:
    continue

print(", ".join(ar[last:]) "])")