Очистить существующий массив 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. Обнулить элементы массива, расположенные между его минимальным и.
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-библиотеке 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
- Реклама на сайте