Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 36 37 38 39 40 41 42 43

Открыть новую тему     Написать ответ в эту тему

Adm10



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здесь обсуждается всё, что связано с использованием Python: программирование, библиотеки, ресурсы и другие вопросы

Python


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

С чего начать?
Простой, понятный и вместе с тем грамотный ресурс на русском языке: pythonworld.ru + самоучитель
Библия PEP8

Всего записей: 35 | Зарегистр. 13-10-2006 | Отправлено: 15:48 16-06-2007 | Исправлено: useretail, 21:51 22-06-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
код?
 
да ради бога
 
тоже ведь скажут утаиваю
 
данные?
 
да нефиг делать

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 22:53 04-09-2024 | Исправлено: akaGM, 22:56 04-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
код
У меня работает.
 
 
 
Добавлено:
akaGM, с конкретики и надо начинать. Код, данные, какую ошибку пишет, на какой строке.  
Вот, например, это  
ax = fig.gca(projection='3d')
откуда взялось у вас?  Копипаста с левого сайта или что?

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 04:58 05-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
 
ну да, ну да, опять транспонирование, второй раз на грабли...

Цитата:
У меня работает.
а у меня не работает :)
как раз без
Цитата:
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D
а взял я это из штатной демонстрашки матплота,
что-то типа ../demo/mplot3d/surface3d[_n].py...
где n=2,3 или цифры вообще нет :)
 
что ж: ещё раз спасибо :)

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 06:45 05-09-2024 | Исправлено: akaGM, 07:00 05-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM опять без конкретики.  Демо у вас  к версии матплотлиба 2012 года выпуска, примерно.  На более-менее современых версиях эта конструкция уже не работает.  А с транспонированием все просто: запустил как было у вас, получил ошибку с номером строки и ее описанием поправил, все заработало.

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 07:50 05-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235

Цитата:
опять без конкретики.
что конкретно я недодал?

Цитата:
Демо у вас  к версии матплотлиба 2012 года выпуска
да и питон у меня несвежий (3.7) и matplotlib-3.1.2 соответствующий...
 
Добавлено:
 
ну вот апгрейдался до 3.5.3
и лучше б не делал :)
 
ничего из старого не работает и теперь все скрипты с использованием этого матплота полезли в сеть...
 
полный... откат :)

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 08:05 05-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Версии питона и используемых пакетов хорошо бы было сразу указать. Иначе будет недопонимание, почему именно у вас не работает, а у других работает. Я не говорю что версия питона 3.7 это плохо и надо срочно апгрейдить. Смысл в том, что чем больше информации, тем проще решить вашу же проблему.
В идеале было бы как то так:
Версия питона, используемой библиотеки, минимальный код (с данными), что бы его можно было просто скопировать и запустить и полный текст ошибки, который выдает на этом коде интерпретатор. Наверное все.  
Иногда, даже бывают ошибки, зависящие от ОС и ее разрядности.
 

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 09:32 05-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
 
а вот теперь меня ооочень интересует вопрос почему все скрипты с использованием матплота косяком потянулись в сеть?
при этом никто и ничто из исполнимых файлов не менялось...
 

Цитата:
Иногда, даже бывают ошибки, зависящие от ОС и ее разрядности.
... а так же от модели компьютерного кресла и от состояния прослойки между этим креслом и клавой/моником :)

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 12:07 05-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Не знаю. "Сеть" имеет какой-то IP адрес..? Какой?
Может быть Qt бинарники/dll новой версии нужны для отображения графиков..  
 
Добавлено:
akaGM
обновляли, надеюсь, через pip?

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 12:41 05-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
 
уже не восстановлю, т.к. сразу же откатился,
нафига мне такие киндер-сюрпризы...
 
ну да, через пип, анинсталл/инсталл,
после пришлось тупо с машины-донора заливать матплот 3.1.2...
 
и еще...
все проигнорировали мой 2-oй вопрос:
Цитата:
2) как быстро (по-питоньи красиво :) из одномерного массива сделать двумерный?

 
double x[N], x[N, N]
 
for (i = 0; i < N; i++)
  X[i, i] = x[i];
 
?

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 13:23 05-09-2024
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Это некрасиво и некорректно. Кроме диагональных, остальные элементы не будут инициализированы правильно.

Всего записей: 5026 | Зарегистр. 18-09-2018 | Отправлено: 13:31 05-09-2024
IJCuper



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM

Цитата:
все проигнорировали мой 2-oй вопрос:
 

почему же, на прошлой странице привел пример как отрабатывает  
X, Y = np.meshgrid(X, Y)
можно, например, так
X = [[c for c in x] for _ in range(0,N)]

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 14:59 05-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IJCuper, meshgrid  лучше, т.к.  быстрее и выдает сразу массив, а не список.
Если надо диагональный вариант (как приведенный код на C++), то есть np.diag или np.diagonal
Если работали с Matlab, то перейти на numpy достаточно легко, функции часто так же называются.
Я, например, в IDE Spyder работаю, наиболее приближено к IDE Matlab, можно в консоли быстро что-то посчитать, переменные массивы посмотреть (размерности и данные) и графики построить одной кнопкой. Отладка, профилирование. Красота.

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 16:52 05-09-2024 | Исправлено: U235, 17:03 05-09-2024
IJCuper



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
U235

Цитата:
быстрее  

насчет быстрей не уверен, под капотом так создается

Код:
    output = [np.asanyarray(x).reshape(s0[:i] + (-1,) + s0[i + 1:])  for i, x in enumerate(xi)]


Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 16:58 05-09-2024 | Исправлено: IJCuper, 16:58 05-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IJCuper
вот бенчмарк:
 

Код:
In [33]: N=5000
In [34]: x=list(range(5000))
In [35]: %timeit X=[[c for c in x] for _ in range(0,N)]
672 ms ± 2.09 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [36]: %timeit X,Y=np.meshgrid(x,x)
229 ms ± 390 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
 

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 18:15 05-09-2024 | Исправлено: U235, 18:16 05-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что за ошибка в типе? вот такая:

Код:

F:>python "example.py" >1.1
Traceback (most recent call last):
  File "example.py", line 18, in <module>
    waves, scales=pywaves.getwavesetfromdatabase([2., 33., 70., 130.]) # the scales must be a subset of those in the database, otherwise the closest available scale will be used
  File "F:\Python\LIB\Wavelet\PyWaveletPeakID.py", line 734, in getwavesetfromdatabase
    waves=[waves[i:j].reshape(k, k*2-1) for i, j, k in zip(si[:-1][scaleinds], si[1:][scaleinds], savesize_scales[scaleinds])]
  File "F:\Python\LIB\Wavelet\PyWaveletPeakID.py", line 734, in <listcomp>
    waves=[waves[i:j].reshape(k, k*2-1) for i, j, k in zip(si[:-1][scaleinds], si[1:][scaleinds], savesize_scales[scaleinds])]
TypeError: 'numpy.float64' object cannot be interpreted as an integer

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 22:39 13-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Видимо в si содержатся float, а float нельзя использовать в качестве индексов.

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 15:55 14-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
 
глянь плиз
и демонстрашка и мейн.ру и ДБ взяты отсюда:
https://github.com/johnmgregoire/PyWaveletPeakID/tree/master
 
походу у меня опять траблы с устаревшей версией...

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 15:59 14-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM, код на гитхабе для второго питона, судя по print  без скобок. исправил, также поправил пути к npz.
По ошибке: проблема в reshape. точнее в k*2-1,  который при умножении  становится float
решение:  заменить k*2-1 на int(k*2-1) или на -1 (вторая размерность считается автоматом).

Код:
waves[i:j].reshape(k, -1)

У меня запустилось и выдало какие-то числа. И графики построило.

 
 

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 16:41 14-09-2024 | Исправлено: U235, 16:44 14-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
U235
 
ага, всё как доктор прописал ты сказал, спасибо :)
 
теперь я закомментил экзампле№1 и откомментил экзампле №2 и соответственно (кто бы сомневался) получил второй геморр :)
list, <listcomp> -- это вообще для меня край...
помогай, плиз :)

Код:
F:>python "example_2.py"
 
data shape: (1, 2000)
[ 2.         2.828427   3.9999998  5.656854   7.9999995 11.313707
 15.999998  22.627415  31.999996  45.254826  63.99999   90.50965  ]
0.09360027313232422 to make waveset
 
Traceback (most recent call last):
  File "example_2.py", line 52, in <module>
    wtset=pywaves.wavetrans1d(data, waves, scalevals=scalevals)
  File "F:\Python\LIB\Wavelet\PyWaveletPeakID.py", line 192, in wavetrans1d
    starti=[[0]*(w.shape[0]//2)+range(n-w.shape[0]+1)+[n-w.shape[0]]*(w.shape[0]//2) for w in waveset]
  File "F:\Python\LIB\Wavelet\PyWaveletPeakID.py", line 192, in <listcomp>
    starti=[[0]*(w.shape[0]//2)+range(n-w.shape[0]+1)+[n-w.shape[0]]*(w.shape[0]//2) for w in waveset]
TypeError: can only concatenate list (not "range") to list

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 18:21 14-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
range(n-w.shape[0]+1)+[n-w.shape[0]]*(w.shape[0]//2)
надо поставить внутри list
list(range(n-w.shape[0]+1)+[n-w.shape[0]]*(w.shape[0]//2))
это особенности второго питона.
Вот https://www.upload.ee/files/17109837/PyWaveletPeakID.py.html
но там еще на hold в matplotlib ругалось, заменил на cla(). возможно, что это не стоило делать, не разбирался.
 
 

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 18:35 14-09-2024 | Исправлено: U235, 18:40 14-09-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 36 37 38 39 40 41 42 43

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru