Перейти к содержимому

Как скопировать массив в другой массив python

  • автор:

Замена части массива numpy на другой массив

Есть массив формой a = (5, 1) . Я беру часть массива b = a[0:4] . Изменяю его, и у меня получается массив b = (8, 1) . Теперь массивом b нужно заменить элементы, которые я брал у массива а.

a[0:4] = b - таким способом не получается. 

Отслеживать
25.4k 4 4 золотых знака 20 20 серебряных знаков 36 36 бронзовых знаков
задан 27 июн 2020 в 17:18
93 7 7 бронзовых знаков

А нужно именно заменить? Причём куском другого размера? Проще наверное новый массив создать из нужных элементов.

27 июн 2020 в 17:36

Нужно чтобы элементы нетронутые в начале, так и остались нетронутыми. Да, как вариант, можно брать лишние элементы в начале, и добавлять после всех операций, но может есть способ проще

27 июн 2020 в 17:43

Приведите всё-таки конкретный пример не с формой, а с содержанием массивов, а то всё-равно не совсем понятно.

27 июн 2020 в 17:48

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Это точно numpy-массивы? Тогда так:

import numpy as np a=np.array([1,2,3,4,5]) b=np.array([8,7,6,5,4,3,2,1]) a=np.hstack((b,a[4:])) print(a) 
[8 7 6 5 4 3 2 1 5] 

Отслеживать
ответ дан 27 июн 2020 в 19:29
11.7k 2 2 золотых знака 10 10 серебряных знаков 16 16 бронзовых знаков

  • python
  • массивы
  • numpy
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как скопировать один массив в другой java

Для копирования одного массива в другой в Java можно использовать метод System.arraycopy() или использовать цикл for для копирования каждого элемента в новый массив.

Пример использования System.arraycopy() :

int[] source = 1, 2, 3, 4, 5>; int[] destination = new int[source.length]; System.arraycopy(source, 0, destination, 0, source.length); System.out.println(Arrays.toString(destination )); // => [1, 2, 3, 4, 5] 

Пример использования цикла for :

int[] source = 1, 2, 3, 4, 5>; int[] destination = new int[source.length]; for (int i = 0; i  source.length; i++)  destination[i] = source[i]; > 

Клонирование списков в Python

Python обладает своей особенностью при работе со списками. Допустим, существует список my_list , и его нужно скопировать в новый список new_list . Самым прявидным и простым способом кажется операция присваивания:

my_list = [1, 2, 3, 4, 5] new_list = my_list

Однако после этого при изменении new_list , изменяется и исходный my_list . Это происходит потому, что в Python списки являются изменяемыми объектами, и при присваивании new_list = my_list создается не новый список, а новая ссылка на уже существующий. Это означает, что любые изменения в new_list отразятся и на my_list , так как обе переменные указывают на одни и те же данные.

new_list.append(6) print(my_list) # Выведет: [1, 2, 3, 4, 5, 6]

Решение

Чтобы избежать этого, необходимо создать копию (или клон) списка. В Python есть несколько способов сделать это.

Использование метода copy()

Самый простой и понятный способ — использовать встроенный метод copy() :

my_list = [1, 2, 3, 4, 5] new_list = my_list.copy()

Теперь new_list является отдельным списком, и изменения в нем не затрагивают my_list .

Использование функции list()

Также можно использовать функцию list() , которая преобразует итерируемый объект в список. Если в качестве аргумента передать список, то получится его копия:

my_list = [1, 2, 3, 4, 5] new_list = list(my_list)

Использование срезов

Еще один способ — использовать срезы. Если не указывать индексы начала и конца, то в результате получится копия всего списка:

my_list = [1, 2, 3, 4, 5] new_list = my_list[:]

Теперь, зная о том, как работают списки в Python, можно избежать неожиданных изменений исходных данных при их копировании.

Артём Санников

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Языки программирования › Python › Списки › Копирование списка в Python

Копирование списка в Python

Копирование списков очень удобная вещь, так как на основе одного списка можно создать другой за считанные секунды. Чтобы скопировать список, создайте срез, включающий весь исходный список без указания первого и последнего индекса [:] . Данная конструкция создаёт срез, который начинается с первого элемента и заканчивается последним, в результате этого создаётся копия списка.

# Текущий список users = ["Иванов", "Петров", "Сидоров"] # Создаём новый список и создаём срез для копирования старого списка new_users = users[:] # Выводим старый список print("Это старый список фамилий:") print(users) # Выводим новый список print("\nЭто новый список фамилий:") print(new_users) # Финальный результат в консоли Это старый список фамилий: ['Иванов', 'Петров', 'Сидоров'] Это новый список фамилий: ['Иванов', 'Петров', 'Сидоров']

Записи по теме

  • Проверка отсутствия значения в списке Python
  • Проверка вхождения значения в список Python
  • Перебор содержимого среза списка в Python
  • Срез для списка в Python
  • Генератор списков в Python
  • Создание числового списка при помощи range() в Python
  • Перебор всего списка в Python
  • Определение длины списка в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *