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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Есть еще __sizeof__  
https://www.geeksforgeeks.org/difference-between-__sizeof__-and-getsizeof-method-python/

Всего записей: 5026 | Зарегистр. 18-09-2018 | Отправлено: 17:33 02-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM, какие цифры? размеры массива по осям?
z.shape[0], z.shape[1]
z.dtype - выдаст тип float32 или float64
Если вам важен тип, вы можете сразу явно его задавать в dtype, не просто float, а float64 (8 байт), а не заниматься зачем-то проверкой.
5*10*8 как раз 400
len не работает с питоновским float. Только с наборами элементов, например массивами.

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



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

Цитата:
print ('sizeof(float) = ', _sys.getsizeof(float))
...
400 :О

а что вы хотели увидеть? и почему удивились?  

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 18:09 02-09-2024 | Исправлено: IJCuper, 18:38 02-09-2024
akaGM

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

Цитата:
а что вы хотели увидеть? и почему удивились?
ну 8 или хотя бы 64...
и откуда такая цифра?
 
U235

Цитата:
z.shape[0], z.shape[1]
ok, спасибо...
 
 
MBK2

Цитата:
Есть еще __sizeof__
всё равно лажа,
ладно, чёрт с ним...

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А разве можно вообще getsizeof(float) делать, это разве валидная конструкция? Насколько я помню, он размер переменной возвращает а не типа.

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



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

Цитата:
и откуда такая цифра?
 

 
в приведенном ранее коде getsizeof использовано не по назначению

Цитата:
sys.getsizeof(float) you're getting the size of the class, not of an instance of the class

ведь если добавить к вашему примеру

Код:
print(type(float))  

мы увидим вывод

Цитата:
<class 'type'>

Если заглянуть под капот кода CPython примерно сюда, то увидим описание структуры типов данных
 
Вероятно вы имели в виду что-то типа

Код:
print ('sizeof(float) = ', _sys.getsizeof(float(1.1)))

и получили бы корректные 24 байта.
Это 16+8 байт.
16 байт это счетчик ссылок (8) и указатель на тип данных (еще 8)
и последние 8 байт это само значение, представленное как doube (C)  
 
Добавлено:
MBK2

Цитата:
валидная конструкция?  

валидная то валидная. Конкретно в таком виде возвращает размер класса, даже не экземпляра.
Для экземпляра надо бы getsizeof(float())  
тогда неявно создастся экземпляр float с нулевым значением (по дефолту) и размер уже покажет 24

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 18:39 02-09-2024 | Исправлено: IJCuper, 18:43 02-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
 
я человек изощрённый (с) избалованный...

Код:

{$APPTYPE CONSOLE}
begin
  writeln('sizeof(double) = ', sizeof(double));
end.

 
void main (void) {
  printf("sizeof(double) = %d\n", sizeof(double));
}


      write (*,*) 'sizeof(double) = ', sizeof(real*8)
      end

ргб-светофорчик :)
думал и здесь всё просто...
 
Добавлено:
 
 
IJCuper
 
забей, обойдусь, не очень-то и хотелось...

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 18:46 02-09-2024 | Исправлено: akaGM, 18:55 02-09-2024
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
еще есть z.itemsize  размер элемента в numpy массиве в байтах..

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

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

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



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

Цитата:
забей, обойдусь, не очень-то и хотелось...
 

так до конца и не понятно какой размер вы искали..

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IJCuper
 
размер типа в байтах...
в фортране/с/паскале плавающая запятая подчиняется ИЕЕ 4/8/10/16 байт

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 19:03 02-09-2024 | Исправлено: akaGM, 19:31 02-09-2024
IJCuper



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

Цитата:
размер типа в байтах...
 

тогда так

Код:
print ('sizeof(float) = ', _sys.getsizeof(float(1.1)))
 

размер 24 байта (на 64 битном python), все по фэншую, в смысле по IEE754
можно даже вот так вывести подробности формата

Код:
print(_sys.float_info)

про то как образуется 24 байта выше написал - (счетчик ссылок на объект)+(ссылка на тип объекта)+(само значение)

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 19:15 02-09-2024 | Исправлено: IJCuper, 19:17 02-09-2024
akaGM

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

Цитата:
всё, всё, спасибо...
 
меня всё устраивает
я узнал что float=8 bytes
и, даст бог, я ничего на питоне считать не буду :)

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

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

Цитата:
размер типа в байтах

Обратите внимание, тут не си и не паскаль, а интерпретируемый язык, соответственно, размер класса, экземпляра класса и размер экземпляра класса в структуре или массиве - вовсе не одно и то же значение.

Всего записей: 5026 | Зарегистр. 18-09-2018 | Отправлено: 19:35 02-09-2024
akaGM

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

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 19:57 02-09-2024
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
зарядил для контура :)
остановился на чтении в массив через np.loadtxt()
отдельное спасибо IJCuper и U235 за помощь...
 

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 14:58 03-09-2024 | Исправлено: akaGM, 15:00 03-09-2024
akaGM

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

Код:

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, antialiased=False)
вот так работает, а с моими данными -- нет //мои данные сто раз проверены, Х,У-1д массивы, Z -2х
 
кто ж мог знать, что plot_surface() просит _все_ массивы двумерные!
 
а посему два вопроса:
 
1) X = np.arange() -- что, генерит двумерный массив?
2) как быстро (по-питоньи красиво :) из одномерного массива сделать двумерный?

Всего записей: 24808 | Зарегистр. 06-12-2002 | Отправлено: 19:45 04-09-2024 | Исправлено: akaGM, 21:15 04-09-2024
IJCuper



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

Цитата:
кто ж мог знать, что plot_surface() просит _все_ массивы двумерные!

 
дак как обычно, смотрим в manual к функции и видим

Цитата:
Parameters:
X, Y, Z - 2D arrays
Data values.
 

описание лаконично до лапидарности - ни прибавить, ни убавить.

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 22:22 04-09-2024
akaGM

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

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



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

Цитата:
а с моими данными -- нет

да все так же угадайка пока без конструктива..
Угадай какой код работает неправильно на моих данных, только я его не покажу, но мамой клянусь что "все сто раз проверено"
 
Добавлено:

Цитата:
2) как быстро (по-питоньи красиво из одномерного массива сделать двумерный?
 

посмотрите на вывод переменных X и Y до и после  

Код:
X, Y = np.meshgrid(X, Y)

 
Сократил диапазоны чтобы вывод был покороче
 
код
вывод
мне кажется тут и кроется ответ на ваш вопрос

Всего записей: 723 | Зарегистр. 07-07-2004 | Отправлено: 22:30 04-09-2024 | Исправлено: IJCuper, 07:33 05-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