Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 12

модуль array

14.07.2015, 15:04. Показов 3505. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я писал простенькую программку, где приходится часто обращаться к различным индексам списка. Подумал что если использовать массивы, то из-за жесткого расположения в памяти время работы программы должно уменьшится. Какого же было мое удивление когда время работы увеличилось с 0.015 до 0.022. Вот собственно и вопрос, с чем это связано? Просто интересно разобраться.
Python
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
33
34
35
import time, array
   
a=[1]*10000
b = [0]*(len(a)+1)
#b = array.array('b',b)
t1=time.clock()
 
b[0]=a[0]
for i in range(1,len(a)-1):
    b[i]+=a[i-1]+a[i]
    if(b[i])==2:
        b[i+1]+=1
        b[i+2]+=1
        b[i]=0
    elif(b[i])==3:
        b[i+1]+=1
        b[i+2]+=1
        b[i]=1
    elif(b[i])==4:
        b[i+2]+=1
        b[i]=0
        
b[i+1]+=a[i]+a[i+1]   
if(b[-2])==2:
    b[i+1]+=1
    b[i]=0
elif(b[-2])==3:
    b[i+1]+=1
    b[i]=1
elif(b[-2])==4:
    b[i]=0
b[-1]=(b[-1]+a[-1])%2
  
print(time.clock()-t1)   
print(b)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.07.2015, 15:04
Ответы с готовыми решениями:

ValueError: Expected 2D array, got 1D array instead
Полдня сижу и не могу понять в чем дело, пытаюсь сделать логистическую регрессию. from sklearn.linear_model import...

Как этот код переделать с использованием модуля array? Или какой модуль ему подойдёт больше?
input_str = str(input()) print(input_str.index(‘ ‘) + 1) Можно его как-то переделать с использованием библиотек?

ValueError: Expected 2D array, got 1D array instead
Добрый день, уважаемые форумчане. При обучении модели для классификации изображений столкнулся с ошибкой ValueError: Expected 2D...

5
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
14.07.2015, 17:07
Это связано с быдлкодом, код ужасен.

А вообще в python списки очень сильно оптимизированы и доступ к элементу происходит очень быстро. https://wiki.python.org/moin/TimeComplexity

Кстати, на будующие тебе. Для измерения времени работы не используют модуль time. Для этого есть специальные профайлеры. Например если нужно замерить время работы функции используют timeit.
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 12
14.07.2015, 17:13  [ТС]
Согласен, что код немного индусский и к тому же то что я выложил не совсем верно выполняло задание, и все это можно внутри одного цикла сделать и вообще уменьшить код в 3-4 раза, но при чем тут скорость обращения к индексам? оно пока в процессе написания, да и я только учусь. жду тогда конструктивной критики что не так с кодом?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
14.07.2015, 17:47
Цитата Сообщение от geosins Посмотреть сообщение
Согласен, что код немного индусский
Так вот проблема как раз в том, что не немного....
Цитата Сообщение от geosins Посмотреть сообщение
жду тогда конструктивной критики что не так с кодом?
Если бы было, что конкретно сказать сразу бы написал, а тут надо переписывать с 0 все.

Что за задание кстати?

Добавлено через 7 минут
Кстати ещё, в случае если нужно использовать настоящие массивы и есть много данных, которые нужно обработать, то используют не этот модуль, а numpy.
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 12
14.07.2015, 17:50  [ТС]
это только часть задания. вообще тут идет работа с системой счисления с отрицательным основанием. конкретно на этом участке идет вычисление противоположного введенному числа. так было расписано чтобы не было лишних действий и для отделения участков кода. потом когда будут выбраны лучшие варианты возможно будет переписано.
спасибо за статью. интересно было. действительно сильно оптимизировали, но все равно неясно почему у массива показатели были хуже.
Python
1
2
3
4
5
6
7
8
9
10
a=[i for i in map(int,input("Введите массив: "))]+[0]
b,b[0],i=[0]*(len(a)+3),a[0],0
for i in range(1,len(a)): 
    b[i]+=a[i-1]+a[i]
    if(b[i]>=2): 
        b[i]%=2
        b[i+2]+=1
        if(b[i]<=3): 
            b[i+1]+=1
print(b[:-3])
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
14.07.2015, 18:05
Цитата Сообщение от geosins Посмотреть сообщение
но все равно неясно почему у массива показатели были хуже.
Там много чего может быть. С ходу например бросается в глаза, что там динамические массивы. Если разбираться глубже уверен, там будет туча изменений по сравнению с другими языками. Ну, а разбираться я не вижу смысла, потому что
Цитата Сообщение от alex925 Посмотреть сообщение
нужно использовать настоящие массивы и есть много данных, которые нужно обработать, то используют не этот модуль, а numpy.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.07.2015, 18:05
Помогаю со студенческими работами здесь

Зависает модуль tkinter при использовании модуль Time || python
По приколу решил создать клик тест на питоне. При этом использовал два модуля tkinter для красоты и time для таймера. Но столкнулся с...

Аргумент int main(array<System::String ^> ^args): array, но не std::array?
Здравствуйте. Тема называется так же, как начинается main в любой консольной CLR - программе. Проблема вот в чем: у меня написан...

Модуль яндекс карты выдает ошибку Warning: count(): Parameter must be an array or an object that implements Countable in
Здравствуйте. Скачал и установил на сайт модуль яндекс карты. Но при открытии сайта выходит ошибка: Warning: count(): Parameter...

Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in
Как убрать такую ошибку: Warning: array_rand() : Second argument has to be between 1 and the number of elements in the array in...

Не могу понять, в чем причина ошибки: this array index is invalid for this array
Сделал подпрограмму вычисления двойного интеграла методом трапеций и выдало такую ошибку. В чем причина?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru