Как обнулить массив в питоне
Перейти к содержимому

Как обнулить массив в питоне

  • автор:

Очистить существующий массив NumPy

Теперь у меня есть массив numpy X с определенными именами столбцов, форматом и длиной. Как я могу установить все значения в 0 (или пустое) в этом массиве, не удаляя формат/имена и т.д.?

user3092887 16 янв. 2014, в 19:54
Поделиться
Поделиться:

3 ответа

Лучший ответ
Используйте numpy.ndarray.fill :

>>> import numpy as np >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> a.fill(0) >>> a array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) 

falsetru 16 янв. 2014, в 20:30
Поделиться
Как насчет Np.Zeroslike
agconti 16 янв. 2014, в 18:57
Это создаст совершенно новый массив
Nick T 16 янв. 2014, в 18:58
@NickT, добавьте @agconti чтобы уведомить его / ее.
falsetru 16 янв. 2014, в 19:02
@NickT вы можете использовать myArray = np.zeros_like(myArray) , я думаю, что он работает так же.
heltonbiker 16 янв. 2014, в 19:13

@heltonbiker вы все еще создаете совершенно новый массив, а затем выпускаете старый, чтобы получить GC’d. Будет использовать вдвое больше памяти и, вероятно, займет больше времени.

Nick T 16 янв. 2014, в 20:05
Показать ещё 3 комментария

Вы можете использовать нарезку:

>>> a = np.array([[1,2],[3,4]]) >>> a[:] = 0 >>> a array([[0, 0], [0, 0]]) 

eskaev 16 янв. 2014, в 20:51
Поделиться

Используйте numpy.zeroes_like , чтобы создать новый массив, заполненный нулями, но сохраняющий информацию о типе из вашего существующего массива:

zeroed_X = numpy.zeroes_like(X) 

Если вы хотите, вы можете сохранить информацию о типе из вашего структурированного массива для дальнейшего использования. Все это в dtype :

my_dtype = X.dtype 

Rohan Singh 16 янв. 2014, в 19:30
Поделиться

Возможно, полезно, но если кто-то хочет просто «очистить» массив, лучше .fill() чем-то его — вы не удваиваете использование памяти.

Nick T 16 янв. 2014, в 20:07

Ещё вопросы

  • 1 Трубка не распознается затмением «в автономном режиме»?
  • 0 Испытательный корпус по угловой директиве Karma не компилирует HTML
  • 1 Как передать объект новому действию, изменить этот объект и обновить изменения в первом действии? [Дубликат]
  • 0 Ширина сетки не фиксируется
  • 0 Не удалось найти код для ответа на этот запрос.
  • 1 Как я могу установить плагин на Mac?
  • 1 Получить сфокусированное имя окна
  • 0 Как представить данные двоичного массива байтов в C ++?
  • 0 Как выбрать COUNT в подзапросе оптимизированным способом
  • 0 Как передать константу в мой метод добавления класса DynamicArray
  • 0 как содержать файл * .tpl в переменной php?
  • 1 Как добавить группировку и зависимость в @BeforeMethod On TestNG
  • 1 Конструктор не определен, говорит Eclipse, но он определен (Java)
  • 0 присвоение атрибута данных модели
  • 1 определение типа данных в Python
  • 0 почему nl2br много
  • 1 Использование itertools для условия с перечислением для получения только определенных индексов списка (python)
  • 0 Анимация jQuery работает нормально в FF, но плохо во всех других браузерах
  • 0 Путаница с машинно-зависимыми значениями указателей
  • 0 Скроллр проблемы с якорными целями
  • 0 Все функции не работают в кнопке возобновления
  • 0 импорт модуля python, который находится в C ++, скомпилирован с gcc 4.4.3
  • 1 Восстановить все файлы designer.cs в веб-формах проекта
  • 0 Фильтрация изотопов — без результатов
  • 0 Попытка создать функцию, где я могу искать в моей базе данных и получать результаты поиска. ошибки
  • 1 Найти значения в списке, которые отличаются от списка ссылок до N символов
  • 0 JQuery Dropdown с помощью JQuery Dummy
  • 0 Удалите окончания строк с помощью регулярных выражений и preg_replace
  • 0 Не могу скомпилировать тестовую программу PostgreSQL
  • 1 Удаление плохих пикселей с помощью массива dask
  • 1 генерировать штрих-коды, когда определенное количество вводится в текстовое поле,
  • 1 Кодирование каждый раз производит разные хэши
  • 0 Добавление числа из переменной к свойству объекта
  • 1 java.lang.ArrayIndexOutOfBoundsException: 0 В самой простой программе
  • 0 привязка события click к jqzoom для запуска fancybox
  • 0 Как открыть несколько форм на одной HTML-странице?
  • 1 WebGL рисование 2D-изображения с картой глубины для достижения псевдо-3D-эффекта
  • 0 Superfish CSS: сделать выпадающее меню подменю вертикально, а не горизонтально
  • 0 JavaScript — Форма отправки всплывающего окна window.open не работает IE / FF
  • 1 Эффективный способ «отменить» индексы от np.tril_indices
  • 0 Иметь все элементы покупки
  • 1 1D массив в 2D массив в Javascript
  • 1 Запись данных маркера об изменении (Google maps API)
  • 1 Панды: Как получить количество строк по значению определенного значения столбца и добавить счет в качестве другого столбца.
  • 0 Синтаксическая ошибка в примере Cython
  • 1 Десериализовать JSON C #
  • 1 Почему копирование перестает работать из контекстного меню?
  • 0 Детрукторы и унаследованные функции c ++
  • 0 Добавление дополнительных строк в индекс PHP при попытке увеличить элемент
  • 1 Моя программа зачетных книжек не печатает должным образом, чтобы превзойти документ

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным
Можно еще одну задачу если вам, не трудно, Заранее Спасибо) Дан одномерный массив. Переставить.

Дан одномерный массив, переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным
import numpy as np a = np.array() list(reversed(a)) print(list(reversed(a))) как мне.

Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами
Указания к заданию: массив реализовать с помощью списков; массив заполнить целыми числами.

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным.

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
4. Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и.

Эксперт Python

2683 / 1589 / 512
Регистрация: 21.02.2017
Сообщений: 4,205
Записей в блоге: 1

1 2 3 4 5 6 7
collection = [2, 1, 3, 4, 5, 6, 4] a = collection.index(min(collection)) b = collection.index(max(collection)) if b  a: a, b = b, a collection[a + 1: b] = [0] * (b - a) print(collection)

Регистрация: 16.02.2021
Сообщений: 21

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import random N = int(input("Размер массива:")) A=[] for i in range(N): A.append(random.randint(-10,15)) print("Массив: ",A) mx=A.index(max(A)) mn=A.index(min(A)) if mx>mn : for i in range(mn+1,mx): A[i]=0 if mxmn : for i in range(mx+1,mn): A[i]=0 print(A) input('ГОТОВО')

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным.

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным.

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
3) Дан массив размера N.Обнулить элементы массива, расположенные между его минимальным и.

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера N.Обнулить элементы массива,расположенные между его минимальным и максимальным.

Массив: Обнулить элементы массива, расположенные между его минимальным и максимальным элементами.
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным.

Очистить массив или присвоить пустой? a.clear() VS a = []. Разница

Вопрос: какая есть разница между двумя этими подходами, и, если разница есть, что и когда будет более оптимально использовать?

Отслеживать
задан 27 апр 2018 в 12:41
Артем Поликарпов Артем Поликарпов
846 1 1 золотой знак 8 8 серебряных знаков 26 26 бронзовых знаков

1) Будут удалены элементы из списка 2) Будет создан пустой список, а предыдущий останется жив пока сборщик мусора до него не доберется

27 апр 2018 в 12:48

2 ответа 2

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

Разница будет в том случае, если вы присваиваете этот массив другим переменным. В случае с clear() после очистки обеим будет присвоен тот же объект, что и до очистки:

a = [1,2,3] print(id(a)) # 43108936 b = a print(id(b)) # 43108936 print(a) # [1, 2, 3] print(b) # [1, 2, 3] a.clear() print(id(a)) # 43108936 print(id(b)) # 43108936 print(a) # [] print(b) # [] print(a is b) # True print(b is a) # True 

В случае с присвоением пустого массива, во переменная b продолжит хранить ссылку на исходный объект:

a = [1,2,3] print(id(a)) # 43108424 b = a print(id(b)) # 43108424 print(a) # [1, 2, 3] print(b) # [1, 2, 3] a = [] print(id(a)) # 43108680 print(id(b)) # 43108424 print(a) # [] print(b) # [1, 2, 3] print(a is b) # False print(b is a) # False 

NumPy, часть 2: базовые операции над массивами

Python 3 логотип

Здравствуйте! Я продолжаю работу над пособием по python-библиотеке NumPy.

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

Сегодня мы познакомимся с операциями над массивами.

Базовые операции

Математические операции над массивами выполняются поэлементно. Создается новый массив, который заполняется результатами действия оператора.

       :1: RuntimeWarning: divide by zero encountered in true_divide    

Для этого, естественно, массивы должны быть одинаковых размеров.

  File 

Также можно производить математические операции между массивом и числом. В этом случае к каждому элементу прибавляется (или что вы там делаете) это число.

NumPy также предоставляет множество математических операций для обработки массивов:

Полный список можно посмотреть здесь.

Многие унарные операции, такие как, например, вычисление суммы всех элементов массива, представлены также и в виде методов класса ndarray.

 

Индексы, срезы, итерации

Одномерные массивы осуществляют операции индексирования, срезов и итераций очень схожим образом с обычными списками и другими последовательностями Python (разве что удалять с помощью срезов нельзя).

           File  У многомерных массивов на каждую ось приходится один индекс. Индексы передаются в виде последовательности чисел, разделенных запятыми (то бишь, кортежами):

Когда индексов меньше, чем осей, отсутствующие индексы предполагаются дополненными с помощью срезов:

b[i] можно читать как b[i, ]. В NumPy это также может быть записано с помощью точек, как b[i, . ].

Например, если x имеет ранг 5 (то есть у него 5 осей), тогда

  • x[1, 2, . ] эквивалентно x[1, 2, :, :, :],
  • x[. , 3] то же самое, что x[:, :, :, :, 3] и
  • x[4, . , 5, :] это x[4, :, :, 5, :].

Итерирование многомерных массивов начинается с первой оси:

Однако, если нужно перебрать поэлементно весь массив, как если бы он был одномерным, для этого можно использовать атрибут flat:

Как уже говорилось, у массива есть форма (shape), определяемая числом элементов вдоль каждой оси:

Форма массива может быть изменена с помощью различных команд:

Порядок элементов в массиве в результате функции ravel() соответствует обычному "C-стилю", то есть, чем правее индекс, тем он "быстрее изменяется": за элементом a[0,0] следует a[0,1]. Если одна форма массива была изменена на другую, массив переформировывается также в "C-стиле". Функции ravel() и reshape() также могут работать (при использовании дополнительного аргумента) в FORTRAN-стиле, в котором быстрее изменяется более левый индекс.

Метод reshape() возвращает ее аргумент с измененной формой, в то время как метод resize() изменяет сам массив:

Если при операции такой перестройки один из аргументов задается как -1, то он автоматически рассчитывается в соответствии с остальными заданными:

Объединение массивов

Несколько массивов могут быть объединены вместе вдоль разных осей с помощью функций hstack и vstack.

hstack() объединяет массивы по первым осям, vstack() — по последним:

Функция column_stack() объединяет одномерные массивы в качестве столбцов двумерного массива:

Аналогично для строк имеется функция row_stack().

Разбиение массива

Используя hsplit() вы можете разбить массив вдоль горизонтальной оси, указав либо число возвращаемых массивов одинаковой формы, либо номера столбцов, после которых массив разрезается "ножницами":

Функция vsplit() разбивает массив вдоль вертикальной оси, а array_split() позволяет указать оси, вдоль которых произойдет разбиение.

Копии и представления

При работе с массивами, их данные иногда необходимо копировать в другой массив, а иногда нет. Это часто является источником путаницы. Возможно 3 случая:

Вообще никаких копий

Простое присваивание не создает ни копии массива, ни копии его данных:

Python передает изменяемые объекты как ссылки, поэтому вызовы функций также не создают копий.

Представление или поверхностная копия

Разные объекты массивов могут использовать одни и те же данные. Метод view() создает новый объект массива, являющийся представлением тех же данных.

Срез массива это представление:

Глубокая копия

Метод copy() создаст настоящую копию массива и его данных:

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

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

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