Как взять n элементов из массива numpy и добавить их в отдельный список?

#python #python-3.x #numpy

Вопрос:

Если у меня есть массив numpy, содержащий n элементов. Как я могу создать список, выбирая определенные диапазоны из этого массива?

 array_input = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
A = array_input[]
B = array_input[]
C = array_input[]
 

Я хочу знать, что я должен ввести в скобках, чтобы вывод был:

 A = [1, 2, 3]

B = [4, 5, 6]

C = [7, 8, 9]
 

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

1. Какова именно ваша конечная цель? Зачем вам нужны три отдельных списка? Почему бы просто не использовать массив?

2. я просто хочу знать, как извлечь элементы из массива в определенном диапазоне и добавить их в другой список…

3. Но почему ? Какова ваша конечная цель? Если у вас есть массив numpy, зачем вам вместо этого нужен список? Например, вы могли бы просто сделать array_input.reshape(-1,3) , и теперь у вас есть массив с 2 измерениями, формой (3,3)… в этом случае вы можете просто получить доступ к каждой строке, используя обычную индексацию.

4. Я думаю , вы ищете A = array_input[0:3] , B = array_input[3:6] и C = array_input[6:9] . Но, как отмечали другие, если A, B и C собираются получить какое-то аналогичное лечение, вам, вероятно, лучше преобразовать в 2D-массив и обработать его.

Ответ №1:

Если у вас есть объект numpy.ndarray для начала, почему бы просто не поработать с ним? Измените его форму:

 >>> arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> arr = arr.reshape(3,-1)
>>> arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> arr[0]
array([1, 2, 3])
 

И это, вероятно, удовлетворит ваши потребности. Если вы настаиваете на создании трех отдельных списков, вы можете просто сделать что-то вроде:

 >>> A, B, C = arr.reshape(3, -1).tolist()
>>> A
[1, 2, 3]
>>> B
[4, 5, 6]
>>> C
[7, 8, 9]