#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]