Создайте пустой массив
1. Создайте пустой массив
2. Добавьте в него 3 любых числа по очереди, найдите максимальный элемент.
3. Создайте любимый список фруктов и овощей
4. Удалите в своем массиве первый и последний элементы
Помогите пожалуйста, ничего не понимаю в этом. могут поставить 2 за четверть
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Создайте два одномерных массива. Второй массив в три раза меньшей длины. Создайте коллекции из элементов масси
Создайте два одномерных массива. Второй массив в три раза меньшей длины. Создайте коллекции из.

Создайте пустой объект. Напишите код, позволяющий пользователю ввести произвольное число свойств и их значений.
Создайте пустой объект. Напишите код, позволяющий пользователю вве-сти произвольное число свойства.

Создайте класс person. Создайте тип people, описывающий массив элементов типа person.
Создайте класс person. У него должны быть поля: name: string; sex: ("муж", "жен"); height.
Автоматизируй это!
![]()
7540 / 4556 / 1206
Регистрация: 30.03.2015
Сообщений: 13,118
Записей в блоге: 29
Сообщение от Alisa_May 
могут поставить 2 за четверть
так это же справедливо, исходя из того что
Сообщение от Alisa_May 
ничего не понимаю в этом
разве не должен человек хотеть чтобы все было по справедливости? чтобы преступник получал срок, герой получал награду, неуч получал двойку?
![]()
7651 / 4098 / 1791
Регистрация: 27.03.2020
Сообщений: 6,913

Сообщение было отмечено Alisa_May как решение
Решение
Alisa_May, как вариант
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
if __name__ in '__main__' : # 1. massiv = [] # 2. num = int(input('Введите целое число:\n')) max_elem = num massiv.append(num) for i in range(2) : num = int(input('Введите целое число:\n')) massiv.append(num) if num > max_elem : max_elem = num print(*massiv) print(max_elem) # 3. veg_fr = [] while True: elem = input('Назовите любимый\nфрукт или овощ\n') veg_fr.append(elem) if input('продолжать? да/нет: ') == 'нет': break print(*veg_fr) # 4. if veg_fr: del veg_fr[0] if veg_fr: del veg_fr[-1] print(*veg_fr)
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
1 2 3 4 5 6 7 8 9
lst_num = [] lst_num = list(map(int, input('Введите три числа через пробел: ').split())) print(lst_num, max(lst_num)) lst_fruit = ['яблоко', 'лимон', 'помидор'] print(lst_fruit) del lst_fruit[0] del lst_fruit[-1] print(lst_fruit)
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

JS(DOM) Создайте пустой div на странице, и при отправке формы данные из трех input должны выводиться в этом самом div, в
1. При вводе имени "Larisa" в input отвечающий за имя, пользователь должен видеть сообщение в alert.
Создайте массив, который состоит из 15 разных чисел. Упорядочить массив по спаданию
Создайте массив, который состоит из 15 разных чисел. Упорядочить массив по спаданию
Массив: Создайте массив размером n×n и заполните его по заданному правилу.
Написать программу на С++. Дано число n, не превышающее 100. Создайте массив размером n×n и.
Массив: Создайте одномерный массив содержащий ваше ФИО как отдельные переменные.
Здравствуйте , помогите пожалуйста 1)Создайте одномерный массив содержащий ваше ФИО как.

Создайте многомерный массив, содержащий названия книг, организованных по жанрам: ассоциативный массив, в котор
Создайте многомерный массив, содержащий названия книг, организованных по жанрам: ассоциативный.
Массивы (матрицы) в Python

Python — популярный и динамический язык программирования. Он позволяет решать разные задачи по разработке ПО, при выполнении которых часто используются массивы.
С их помощью вы сможете добавить однотипные данные и избежать дублирования кода.
Одномерные массивы в Python представляют собой список элементов. Значения указываются внутри квадратных скобок, где перечисляются через запятую. Как правило, любой элемент можно вызвать по индексу и присвоить ему новое значение.
Массив строк в Python:
Prime = ['string1', 'string2', 'string3'] Prime[1] = 'string2'; //trueЧтобы возвратить число элементов внутри списка, используют функцию len() :
len(Prime) == 4; // trueКогда нужно перечислить элементы массива, применяют цикл for . В «Питоне» этот цикл перебирает элементы, а не индексы, как в Pascal:
for elem in [1, 4, 67]Идём дальше. Создать и добавить цикл в Python можно с помощью генератора заполнения списков. Записывается он в следующем виде: [значение массива for имя переменной in число элементов];
Если говорить про создание не одномерного, а двумерного массива, то он в Python создаётся путём использования вложенных генераторов, и выглядит это так:
[[0 for j in range(m)] for i in range(n)]
Как создаются матрицы в Python?
Добавление и модификация массивов или матриц (matrix) в Python осуществляется с помощью библиотеки NumPy. Вы можете создать таким образом и одномерный, и двумерный, и многомерный массив. Библиотека обладает широким набором пакетов, которые необходимы, чтобы успешно решать различные математические задачи. Она не только поддерживает создание двумерных и многомерных массивов, но обеспечивает работу однородных многомерных матриц.
Чтобы получить доступ и начать использовать функции данного пакета, его импортируют:
import numpy as npФункция array() — один из самых простых способов, позволяющих динамически задать одно- и двумерный массив в Python. Она создаёт объект типа ndarray :
array = np.array(/* множество элементов */)Для проверки используется функция array.type() — принимает в качестве аргумента имя массива, который был создан.
Если хотите сделать переопределение типа массива, используйте на стадии создания dtype=np.complex :
array2 = np.array([ /*элементы*/, dtype=np.complex)Когда стоит задача задать одномерный или двумерный массив определённой длины в Python, и его значения на данном этапе неизвестны, происходит его заполнение нулями функцией zeros() . Кроме того, можно получить матрицу из единиц через функцию ones() . При этом в качестве аргументов принимают число элементов и число вложенных массивов внутри:
np.zeros(2, 2, 2)К примеру, так в Python происходит задание двух массивов внутри, которые по длине имеют два элемента:
array([ [[0, 0]] [[0, 0]]] )Если хотите вывести одно- либо двумерный массив на экран, вам поможет функция print() . Учтите, что если матрица слишком велика для печати, NumPy скроет центральную часть и выведет лишь крайние значения. Дабы увидеть массив полностью, используется функция set_printoptions() . При этом по умолчанию выводятся не все элементы, а происходит вывод только первой тысячи. И это значение массива указывается в качестве аргумента с ключевым словом threshold.
Базовые операции в NumPy
Все действия, производимые над компонентами массива, оборачиваются созданием нового массива. При этом массивы и матрицы взаимодействуют в том случае, если имеют один и тот же размер:
array1 = np.array([[1, 2, 3], [1, 2, 3]]) array2 = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])Если выполнить array1 + array2, компилятор скажет об ошибке, а всё потому, что размер первого matrix равен двум, а второго трём.
array1 = np.array([1, 2, 5, 7]) array2 = arange([1, 5, 1])В данном случае array1 + array2 вернёт нам массив со следующими элементами: 2, 4, 8, 11. Здесь не возникнет ошибки, т. к. матрицы имеют одинаковые размеры. Причём вместо ручного сложения часто применяют функцию, входящую в класс ndarray sum() :
np.array(array1 + array1) == array1 + array2В ndarray входит большая библиотека методов, необходимых для выполнения математических операций.
Форма матрицы в Python
Lenght matrix (длина матрицы) в Python определяет форму. Длину матрицы проверяют методом shape() .
Массив с 2-мя либо 3-мя элементами будет иметь форму (2, 2, 3). И это состояние изменится, когда в shape() будут указаны аргументы: первый — число подмассивов, второй — размерность каждого подмассива.
Те же задачи и ту же операцию выполнит reshape() . Здесь lenght и другие параметры matrix определяются числом столбцов и строк.
Есть методы и для манипуляции формой. Допустим, при манипуляциях с двумерными или многомерными массивами можно сделать одномерный путём выстраивания внутренних значений последовательно по возрастанию. А чтобы поменять в матрице строки и столбцы местами, применяют transpose() .
Операции со срезами matrix в Python
Часто мы работаем не с целым массивом, а с его компонентами. Эти операции выполняются с помощью метода слайс (срез). Он пришел на замену циклу for, при котором каждый элемент подвергался перебору. Метод позволяет получать копии matrix, причём манипуляции выполняются в виде [start:stop:step] . В данном случае start — индекс элемента, с которого берётся отсчёт, stop — последний элемент, step — размер шага или число пропускаемых значений элемента при каждой итерации. Изначально start равен нулю, stop — индексу последнего элемента, step — единице. Если выполнить операции без аргументов, копирование и добавление списка произойдёт полностью.
Допустим, имеем целочисленный массив otus = [1, 2, 3, 4] . Для копирования и вывода используем otus[:] . В итоге произойдёт вывод последовательности [1, 2, 3, 4]. Но если аргументом станет отрицательное значение, допустим, -2, произойдёт вывод уже других данных:
otus[-2]; //[4]Возможны и другие операции. Например, если добавить ещё одно двоеточие, будет указан шаг копируемых элементов. Таким образом, otus[::2] позволит вывести матрицу [1, 3].
Если ввести отрицательное значение, к примеру, [::-2] отсчёт начнётся с конца, и в результате произойдёт вывод [3, 1]. Остаётся добавить, что метод среза позволяет гибко работать с матрицами и вложенными списками в Python.
Хотите узнать гораздо больше? Записывайтесь на курс «Разработчик Python»!
Массивы
Массив (англ. array) - структура данных, хранящая набор значений. Каждое значение из набора индексируется, т.е. значения имеют номера (индексы).
Простейший массив имеет следующий интерфейс
- создать(A, N) -> массив A длины N - создание массива A размера N .
- записать(A, i, x) - записывает значение x в i -ый элемент массива A .
- считать(A, i) -> элемент массива A с индексом i - взятие элемента по индексу (чтение).
- удалить(A) - удаление массива А .
Обычно индексами массива являются целые положительные числа, причём в непрерывном диапазоне. Например, 0, 1, 2. N-2, N-1 , где N - размер массива. В таком случае массив упорядочен по индексу и можно говорить, что массив также является последовательностью.
Для массива операции чтения и записи выполняются за O(1) , т.е. время этих операций не зависит от количества элементов в массиве.
Массив в Python
Массив в Python
упорядоченная изменяемая последовательность. массив хранит множество элементов, которые образуют последовательность. При этом можно изменять как сами элементы массива, так и сам массив: пополнять массив новыми элементами или удалять их. . объектов произвольных типов элементами массива являются Python-объекты. При этом допускается, чтобы в одном массиве хранились объекты разных типов.
Массивы в Python также называют списками или листами (англ. list). Терминология в других языках программирования, а также в теории алгоритмов может быть другая.
Список Python является гибким в использовании объектом. Как инструмент, программист может использовать списки, например, для создания элементов линейной алгебры: точек, векторов, матриц, тензоров. Или, например, для таблицы с некоторыми данными.
Важно заметить, что , питоновский список, является универсальной структурой данных. В том числе, ей можно пользоваться как массивом (что мы и будем делать)! То есть, у этого объекта есть интерфейс, описанный в предыдущем разделе, причём с теми же асимптотиками, хотя возможности выходят гораздо за пределы простейшего массива.
Создание массива
Литерал массива
Массив можно создать при помощи литералов. Литерал - это код, который используется для создания объекта "вручную" (задания константы). Например, некоторые литералы уже изученных ранее объектов:
- int : 5 , -23
- float : 5. , 5.0 , -10.81 , -1.081e1
- str : 'ABCdef' , "ABCdef"
В случае массива литералом являются квадратные скобки [] , внутри которых через запятую , перечисляются элементы массива:
>>> [] [] >>> [0, 1, 2, 3, 4] [0, 1, 2, 3, 4] >>> ['sapere', 'aude'] ['sapere', 'aude'] >>> ['Gravitational acceleration', 9.80665, 'm s^-2'] ['Gravitational acceleration', 9.80665, 'm s^-2'] >>> type([0, 1, 2, 3, 4])
Создание массива заданной длины, склеивание массивов
Чтобы создать массив наперёд заданной длины, нужно задать инициализируещее значение и длину. Ниже создаётся массив, содержащий 10 нулей.
>>> A = [0] * 10 >>> A [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >>> type(A)
С похожим синтаксисом мы сталкивались при работе со строками. Массивы в Python можно "склеивать" с помощью знака сложения:
>>> A = [0] * 3 # [0, 0, 0] >>> B = [1] * 3 # [1, 1, 1] >>> C = [2] * 3 # [2, 2, 2] >>> D = A + B + C >>> D [0, 0, 0, 1, 1, 1, 2, 2, 2]
На самом деле, умножение массива на целое число M это создание нового массива путём M "склеиваний" исходного массива с самим собой:
>>> [0, 1] * 3 [0, 1, 0, 1, 0, 1] >>> [0, 1] + [0, 1] + [0, 1] [0, 1, 0, 1, 0, 1]
Элементы массива: доступ и изменение
Выше мы убедились, что массив это множество объектов различных типов, теперь убедимся, что это упорядоченная последовательность изменяемых объектов.
Доступ по индексу
Для доступа к элементам массива используется операция взятия элемента по индексу. Для этого рядом с литералом или переменной массива необходимо подписать индекс элемента в квадратных скобках:
>>> ['Gravitational acceleration', 9.80665, 'm s^-2'][0] 'Gravitational acceleration' >>> ['Gravitational acceleration', 9.80665, 'm s^-2'][1] 9.80665 >>> ['Gravitational acceleration', 9.80665, 'm s^-2'][2] 'm s^-2' >>> l = [10, 20, 30] >>> l[0] 10 >>> l[1] 20 >>> l[2] 30
Нумерация элементов массива начинается с нуля.
При запросе элемента по несуществующему индексу, Python вызовет ошибку IndexError:
>>> l [10, 20, 30] >>> l[3] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range
Поэтому всегда нужно быть уверенным, что индексация не выходит за пределы длины массива. Получить её можно с помощью функции len() :
>>> l [10, 20, 30] >>> len(l) 3 >>> l[len(l) - 1] 30
Последняя конструкция встречается нередко, поэтому в Python существует возможность взять элемент по отрицательному индексу:
>>> l [10, 20, 30] >>> l[-1] 30 >>> l[-2] 20 >>> l[-3] 10 >>> l[-4] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range
Таким образом для индекса n ≥ 0, l[-n] эвивалентно l[len(l) - n] .
Изменение элементов
Изменение элементов осуществляется с помощью присваивания:
>>> l = [10, 20, 30] >>> l [10, 20, 30] >>> l[0] = 0 >>> l [0, 20, 30] >>> l[2] = 55 >>> l [0, 20, 55]
Доступ в цикле while
>>> l [0, 20, 55] >>> i = 0 >>> while i len(l): . print(i, l[i]) . i += 1 . 0 0 1 20 2 55 >>>
Доступ в цикле for
Наиболее универсальный способ это использование генератора range:
>>> l [0, 20, 55] >>> for i in range(len(l)): . print(i, l[i]) . 0 0 1 20 2 55
Печать массива
Чтобы распечатать элементы массива в столбец, воспользуйтесь циклом for , как в разделе выше.
Если нужно распечатать массив в строку, то воспользуйтесь функцией print :
>>> A = [0, 1, 2, 3] >>> print(*A) 0 1 2 3
Здесь знак * это операция развёртывания коллекции по аргументам функции. Функция print принимает на вход сколько угодно аргументов и действие выше эквиваленто следующему:
>>> print(A[0], A[1], A[2], A[3]) 0 1 2 3
Ремарка о строках
На самом деле, мы уже ранее сталкивались с массивами в предудыщих лабораторных, когда использовали строковый метод str.split :
>>> s = "ab cd ef1 2 301" >>> s.split() ['ab', 'cd', 'ef1', '2', '301']
Т.е. str.split , по умолчанию, разбивает строку по символам пустого пространства (пробел, табуляция) и создаёт массив из получившихся "слов".
Загляните в help(str.split) , чтобы узнать, как изменить такое поведение, и разбивать строку, например, по запятым, что является стандартом для представления таблиц в файлах csv (comma separated values).
Методом, являющимся обратным к операции str.split является str.join . Он "собирает" строку из массива строк:
>>> s 'ab cd ef1 2 301' >>> l = s.split() >>> l ['ab', 'cd', 'ef1', '2', '301'] >>> l[-1] = '430' >>> l ['ab', 'cd', 'ef1', '2', '430'] >>> ','.join(l) 'ab,cd,ef1,2,430' >>> ' -- '.join(l) 'ab -- cd -- ef1 -- 2 -- 430'
Работа с двумерными массивами
Как вам рассказали, в массиве мы можем хранить различные данные. В том числе в ячейке массива можем хранить другой массив. Давайте предположим, что в каждой ячейке массива размера N у нас будет храниться другой массив размера M . Таким образом мы можем построить таблицу или матрицу размера N x M .
Создание двумерного массива (матрицы) размера N x M в питоне:
a = [] for _ in range(n): a.append([0] * m)
a = [[0] * m for _ in range(n)]
Обращение к элементами двумерного массива:
a[i][j] = 5
Создание пустого массива NumPy и постепенное его заполнение
На данный момент программа постепенно записывает в пустой список большой объём данных. Делает примерно так:
import time # Создаю пустые списки z_gyro_row = [] collect_time_row = [] START_TIME = time.time() # В цикле по определённому условию считываю данные с датчика # И постепенно заполняю пустые списки while flag: collect_time = time.time() - START_TIME # Фиксируем отрезок времени collect_time_row.append(collect_time) # Запись времени в список z_gyro_32 = gyro_out32(z_gyro_32) # Считываю значение с датчика z_gyro_row.append(z_gyro_32) # Запись значений в список
На один из моих вопросов, мне посоветовали для большого объёма данных использовать массивы NumPy. Сейчас я это попытался сделать, но как я понимаю их невозможно так же как и списки постепенно заполнять данными с помощью команды .append. Попытался так, но не вышло:
import numpy as np my_array = np.array([], 'float64') np.append(my_array, 10)
Возможно только преобразовать list в numpy.ndarray. В связи с этим возникает вопрос как оптимально использовать массивы NumPy, чтобы тратить как можно меньше времени и ресурсов на запись/хранение/обработку данных?
Отслеживать
задан 2 мар 2021 в 11:45
387 1 1 золотой знак 3 3 серебряных знака 13 13 бронзовых знаков
my_array = np.append(my_array, 10)
2 мар 2021 в 12:06
@strawdog Спасибо, всё работает!
2 мар 2021 в 12:08
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Если данных не очень много (не миллионы значений), то вам вообще не имеет смысла мучиться с Numpy . Я потестил ради интереса, создал пустой список из добавил к нему по одному 1 000 000 (миллион) элементов. На это у питона ушло 100 миллисекунд.
Если такая скорость для вас мала, то тогда нужно выделять массив Numpy , например, с помощью np.empty заведомо большего размера, чем вам может понадобится, и заполнять его, обращаясь к элементам по индексу. Но это не так удобно, как работать со списком.
А ещё в питоне есть разные виды очередей, например, очень удобная collections.deque , которую можно читать и писать с обоих концов. Если вы то пишете в список, то читаете из него вперемешку, то использовать очередь ещё проще и удобнее, чем список. Опять же на примере миллиона элементов создание очереди путём добавления элементов с конца и с начала по очереди, а потом полное опустошение очереди опять же забиранием элементов с конца и с начала по очереди заняло чуть больше тех же 100 миллисекунд. Очень рекомендую очередь - весьма удобная коллекция.
Отслеживать
ответ дан 2 мар 2021 в 12:49
67.7k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак
В принципе, вы правы. Вся прелесть numpy проявляется не тогда, когда вы массив создаете, а когда начинаете с ним работать. Вот тогда - и обработка может оказаться на много быстрее чем в списке, код проще и убодочитаемее - ибо без циклов и пр. заморочек. С датчиков же мы что-то снимаем для дальнейшего анализа или хотя-бы визуализации. А если просто "прочитал - добавил" - то можно и без numpy забивать память, пока не произойдет переполнение.
2 мар 2021 в 13:01
@passant Ну да, поскольку сценарий использования автором описан не целиком, сложновато гадать. Но судя по тому, как он пытается использовать numpy , скорее всего тут речь не идёт о векторной/матричной обработке данных, при которой numpy смог бы раскрыться.
2 мар 2021 в 13:02
@CrazyElf Данные после чтения мне необходимо обрабатывать. Сама математика не сложная, но всё равно присутствует. И графики также необходимо строить, поэтому всё таки воспользуюсь советом и буду использовать numpy . Спасибо всем за советы!)
2 мар 2021 в 13:10
Отличная идея с очередями - они здесь архитектурно лучше всего подходят, по-моему
2 мар 2021 в 14:09
Да, массивы - неизменяемый (не расширяемый) тип данных. Это цена за скорость работы. Вообще-то ничего нового и страшного: классические массивы в том-же С++ именно так и работают. Уже десятки лет. И еще столько-же будут использоваться и работать.
Теперь что делать. Самое худшее из возможных решений - работать с ними как со списками, т.е. порождать пустым, а потом добавлять по мере необходимости по одному элементу. Разумный путь - определить максимально возможное (в будущем) количество элементов в массиве, порождать массив именно такого размера, а потом заполнять его элементы по мере их появления. Промежуточный путь - породить массив большого (достаточного на первое время функционирования) размера, после исчерпания - добавлять новый фрагмент (опять - не на один элемент, конечно).
Поскольку у вас работа идет - мне так кажется - с датчиками, то у вас еще меньше проблем должно возникнуть, если конечно архитектуру приложения разработать нормально. В таких приложениях - нет необходимости хранить информацию бесконечно долго. Более того, есть такое понятие - окно наблюдения. По сути, сколько данных вы обрабатываете. И это окно как правило коненчо. Вот и создавайте массив соответствующего размера. Или два таких массива - один заполняется, данные из второго - обрабатываются. Кстати - заполнять можно действительно через список, который по только факту полного заполнения преобразуется в массив. Потом массивы меняются местами - второй наполняется, первый обрабатывается. Но архитектуру конечно надо при этом делать не спонтанно-интуитивно.

