The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0 "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0 "  +/
Сообщение от opennews (?), 18-Июн-23, 07:33 
Доступен релиз Python-библиотеки для научных вычислений NumPy 1.25, ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных  расчётов. Код проекта написан на языке Python с применением оптимизаций на языке Си и распространяется под лицензией BSD...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=59312

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Иваня (?), 18-Июн-23, 07:33 
Непонятно, за счёт чего увеличена скорость выполнения? Интересно, что там такого сделали?
Ответить | Правка | Наверх | Cообщить модератору

2. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –4 +/
Сообщение от Аноним (2), 18-Июн-23, 07:41 
начали транслированть код с питона на си, а потом включают оптимизацию -O2
Ответить | Правка | Наверх | Cообщить модератору

3. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –5 +/
Сообщение от Аноним (3), 18-Июн-23, 07:55 
а что это за оптимизация такая ?
Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +2 +/
Сообщение от Аноним (73), 18-Июн-23, 23:37 
ну быстрее всё становится
Ответить | Правка | Наверх | Cообщить модератору

80. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +3 +/
Сообщение от Аноним (80), 19-Июн-23, 01:37 
Раньше было Раз..Два..Три..Четыре. А сейчас РазДваРазДваРазДва.
Вот как надо объяснять )
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (5), 18-Июн-23, 09:35 
Потому что на C она написана.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

22. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (22), 18-Июн-23, 14:14 
За счёт ускоренного Python 3.11 https://www.opennet.ru/opennews/art.shtml?num=57971
"Проведена значительная работа по оптимизации производительности. ... В зависимости от вида нагрузки отмечается прирост скорости выполнения кода на 10-60%. В среднем производительность при прохождении тестового набора pyperformance увеличилась на 25%."06
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

32. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от YM2608 (?), 18-Июн-23, 15:36 
за счёт битовых сдвигов
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

33. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (33), 18-Июн-23, 15:53 
Дропнули устаревшие процессоры.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

47. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (80), 18-Июн-23, 21:07 
На питоне обертка, а трудяга оптимизированный Си?
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

55. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (55), 18-Июн-23, 21:45 
Да. Си настолько неудобен и отвратителен, что люди готовы даже на Питоне писать, лишь бы не связываться.
Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (80), 18-Июн-23, 22:06 
Так и скажите - питон сам вычислять не готов. Он просто легок нравится начинающим.
Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (98), 20-Июн-23, 20:01 
Фигня. Си с Фортраном - самое то для науки. На Си надо писать критически важные по скорости подпрограммы (чтоб не на асме), а остальное - на Фортране.
Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

63. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (63), 18-Июн-23, 22:24 
> На сишке обертка, а трудяга оптимизированный форктран?
> https://github.com/Reference-LAPACK/lapack
> Fortran 77.8%  C 20.3%

Пофиксил, не благодари.

Так и скажите - сишка сама вычислять не готова. Она просто легко нравится начинающим.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

64. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 18-Июн-23, 22:35 
LAPACK is a library of Fortran subroutines for solving the most commonly occurring problems in numerical linear algebra.

Может в библиотеке для Фортрана Си для прозрачного интерфейса с ядром linux и низкоуровневой организацией типов?

Ответить | Правка | Наверх | Cообщить модератору

89. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (22), 19-Июн-23, 09:53 
Трудяга Fortran. Ага, попробуйте пособирать зависимости NumPy при отстуствующем фронтэнде Фортрана.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

99. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (99), 20-Июн-23, 20:39 
Можно собрать его с бинарным интеловским mkl (единственная норм реализация). Но там тоже фортран, это да.
Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от nuzhnyemail (?), 19-Июн-23, 12:24 
- Faster np.argsort on AVX-512 enabled processors
- Faster np.sort on AVX-512 enabled processors
- __array_function__ machinery is now much faster
- ufunc.at can be much faster
- Faster membership test on NpzFile

https://numpy.org/doc/stable/release/1.25.0-notes.html#perfo...

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +10 +/
Сообщение от Аноним (4), 18-Июн-23, 08:00 
> с использованием оператора "@="

Побольше нескучных операторов в стиле перла! В идеале весь код должен состоять из спец-символов. Alpha-numeric символы -- для 13-летних школьниц, код должен быть максимально непонятным.

Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Анонимemail (6), 18-Июн-23, 09:36 
Не даёт покоя слава https://ru.m.wikipedia.org/wiki/Brainfuck
Ответить | Правка | Наверх | Cообщить модератору

11. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +5 +/
Сообщение от Анонус (?), 18-Июн-23, 10:23 
Ну зачем так сразу, есть более приличный образец для подражанияhttps://ru.wikipedia.org/wiki/APL_(язык_программирования)
Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (15), 18-Июн-23, 12:45 
C++ уже превратился в аналог PL/I.
Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +4 +/
Сообщение от Аноним (18), 18-Июн-23, 13:30 
Нет это раст уже давно был спроектирован как замена PL/I.
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –1 +/
Сообщение от Аноним (80), 18-Июн-23, 21:21 
Естественно ведь там есть обобщенные типы, интерфейсы, функции. Есть перегрузка операторов.
Все языки где есть "обобщенность" тем или иным образом похожи на PL. В том числе и Rust
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

87. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от 1 (??), 19-Июн-23, 09:37 
Ну, если вспомнить историю почему язык назвали PL/1, то да. Единственный язык для всего.
Ну правда все пытаются это оспорить ;-)
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

40. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от pashev.ru (?), 18-Июн-23, 18:21 
http://git.pashev.ru/gcd/tree/gcd.apl
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

43. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +2 +/
Сообщение от Анонус (?), 18-Июн-23, 19:19 
> http://git.pashev.ru/gcd/tree/gcd.apl

⍝ Символ комментария конечно шикарный

Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Tron is Whistling (?), 18-Июн-23, 13:57 
@= ?
Nuke?
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

28. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (22), 18-Июн-23, 14:27 
У Перла главная нескучность - символ $ в имени всех переменных. Впрочем, у PHP тоже.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

49. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Другой Анон (?), 18-Июн-23, 21:25 
В Perl так было сделано, потому что после $ ожидается не "имя", а выражение. То есть вы можете сделать, например, так:
perl -E '${"foo" . "bar"} = 123; say $foobar;
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 18-Июн-23, 22:19 
А почему перл присвоил себе первенство использование одноместных операторов. Наверно это всё таки был Си a+=b; @= это просто оператор одноместное умножение матриц как я понял.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

14. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –1 +/
Сообщение от Аноним (33), 18-Июн-23, 11:03 
>Обеспечено формирование wheel-пакетов на базе стандартной Си-библиотеки musl.

Лучше бы для risc-v и armv7 пакеты сформировали.

Ответить | Правка | Наверх | Cообщить модератору

16. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (15), 18-Июн-23, 12:45 
Берёшь и делаешь. Думаешь, что этот софт Фиксики пишут?
Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 19-Июн-23, 00:09 
> Лучше бы для risc-v и armv7 пакеты сформировали.

Чтобы мелькали заголовки "Julia раскидывает сети" ))

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

19. Скрыто модератором  –1 +/
Сообщение от Аноним (19), 18-Июн-23, 13:54 
Ответить | Правка | Наверх | Cообщить модератору

23. Скрыто модератором  +2 +/
Сообщение от Аноним (18), 18-Июн-23, 14:23 
Ответить | Правка | Наверх | Cообщить модератору

36. Скрыто модератором  –1 +/
Сообщение от Аноним (36), 18-Июн-23, 16:56 
Ответить | Правка | Наверх | Cообщить модератору

37. Скрыто модератором  +1 +/
Сообщение от Аноним (18), 18-Июн-23, 17:37 
Ответить | Правка | Наверх | Cообщить модератору

41. Скрыто модератором  +/
Сообщение от Аноним (36), 18-Июн-23, 18:29 
Ответить | Правка | Наверх | Cообщить модератору

52. Скрыто модератором  +/
Сообщение от Аноним (18), 18-Июн-23, 21:30 
Ответить | Правка | Наверх | Cообщить модератору

56. Скрыто модератором  +/
Сообщение от Аноним (55), 18-Июн-23, 21:50 
Ответить | Правка | Наверх | Cообщить модератору

68. Скрыто модератором  +/
Сообщение от Аноним (22), 18-Июн-23, 22:56 
Ответить | Правка | Наверх | Cообщить модератору

46. Скрыто модератором  –2 +/
Сообщение от Бывалый смузихлёб (?), 18-Июн-23, 21:03 
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

50. Скрыто модератором  +2 +/
Сообщение от Аноним (18), 18-Июн-23, 21:27 
Ответить | Правка | Наверх | Cообщить модератору

66. Скрыто модератором  +/
Сообщение от Обмазанный смузиприлиз (?), 18-Июн-23, 22:42 
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

69. Скрыто модератором  +/
Сообщение от Аноним (5), 18-Июн-23, 23:00 
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

70. Скрыто модератором  +/
Сообщение от Аноним (70), 18-Июн-23, 23:06 
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

21. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +4 +/
Сообщение от Аноним (21), 18-Июн-23, 14:13 
numpy - один из столпов, на котором держится популярность питона. Не исключено, что самый важный. С одной стороны, жаль что не входит в стандартную библиотеку питона, с другой - так он развивается независимо и может обновляться отдельно от самого питона. Многих лет и тому и другому.
Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –1 +/
Сообщение от Аноним (18), 18-Июн-23, 14:24 
Вызывай из раста через питон какие проблемы?
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (27), 18-Июн-23, 14:27 
пропущен фронтенд на js
Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от 1 (??), 19-Июн-23, 09:38 
и докер
Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (93), 19-Июн-23, 12:51 
Докер в QEMU
Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (95), 20-Июн-23, 09:37 
На маке с M1, M2 так всё и вызывают, не шутка.
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –1 +/
Сообщение от Аноним (33), 18-Июн-23, 14:26 
>жаль что не входит в стандартную библиотеку питона

Очень хорошо, что не входит. Эту стандартную библиотеку давно упразднить пора и определить просто как список предустановленных пакетов. При этом чтобы абсолютно все пакеты там можно было обновить без обновления версии питона.

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

38. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (18), 18-Июн-23, 17:39 
Такого не может быть или они часть питона и выходят вместе с новой версий питона или никак. Если это будут просто пакеты никто не будет задерживать релиз до полной совместимости пакета и новой версий питона. И эта самая совместимость очень быстро улетучится совсем.
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (91), 19-Июн-23, 10:07 
Они не должны быть частью питона. Часто ради одной функции из стандартной библиотеки длопается версия питона. При этом если скачать файл wgetом с GitHubа и заменить оный в директории стандартной библиотеки, то этот модуль прекрасно работает. То есть разрабы питона вынуждают людей дропнуть старые версии питона таким подходом.

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

А не надо релиз задерживать. Когда модуль будет готов, тогда его надо релизнуть в pypi, и только после этого его можно использовать. Версии питона должны быть чисто про возможности интерпретатора и built-inы, а не про кучу модулей, написанных на питоне.

>или никак

Я же сказал, версии питона должны гарантировать небольшой список предустановленных версий модулей в виде >= спецификаторов. Для 2х целей.
1. совместимость со старой моделью, потому что старые пакеты в зависимостях такое не пишут
2. база для pip и setuptools, чтобы были зависимости, необходимые для сборки и установки пакетов.

Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 18-Июн-23, 21:33 
> Эту стандартную библиотеку давно упразднить пора

А что в питоне есть core (как в Rust), где реализованы примитивы?

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

90. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (91), 19-Июн-23, 09:55 
Есть built-in модули.
Ответить | Правка | Наверх | Cообщить модератору

96. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (95), 20-Июн-23, 09:38 
На упразднить пора раст.
Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

29. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –3 +/
Сообщение от Аноним (-), 18-Июн-23, 14:36 
>>  Python-библиотеки для научных вычислений

Для научных вычислений это скорее scipy и sympy.
Numpy это скорее базовая прикладная математика.

Ответить | Правка | Наверх | Cообщить модератору

94. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (94), 19-Июн-23, 17:15 
За использование sympy в "научных вычислениях" надо руки отрывать.
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (97), 20-Июн-23, 10:48 
То есть Wolfram Matematica можно, а за Sympy - руки отрывать? Нельзя пользоваться, АНОН ОПЕННЕТА НЕ ОДОБРИЛ!
Ответить | Правка | Наверх | Cообщить модератору

34. Скрыто модератором  +/
Сообщение от Аноним (-), 18-Июн-23, 15:55 
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от economist (?), 18-Июн-23, 17:58 
В 95% numpy используется из pandas. Несколько сильных шагов в части ускорения связки python+numpy+pandas (например переход на apache arrow) - перечеркивают закосневшие журнализмы *выводы о тормознутости матрасчетов на Python) и требуют переосмысления.

А еще требуют pip install -U pandas numpy

Переписывать почти ничего не надо, а если и надо - гуглится всё на раз (плюсы развитой экосистемы).

Выход на 1-е место в DS ЯП Julia и канонизация в вечность для Matlab - опять откладываются на неопр. срок.

Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (2), 18-Июн-23, 18:39 
всё что там требуется - это format c:
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 18-Июн-23, 21:37 
access deny
Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Анонус (?), 18-Июн-23, 19:24 
> Выход на 1-е место в DS ЯП Julia и канонизация в вечность
> для Matlab - опять откладываются на неопр. срок.

Кажется Джулия поскользнулась где-то на старте и уже не взойдет на пьедестал.

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

45. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  –1 +/
Сообщение от Аноним (36), 18-Июн-23, 19:32 
У Джулии ошибка в маркетинге. Физиков, вычислительных биологов и химиков они к себе привязали просто за счёт куда более удобной инфраструктуры вокруг языка и доступных библиотек. А вот в массовом DS - да, прозевали. То есть, Julia сейчас ушла в научную сферу, но ширпотреб - не ясно.
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (55), 18-Июн-23, 21:52 
Насколько Julia популярнее электронных таблиц в науке?
Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (36), 18-Июн-23, 22:18 
Зависит от отрасли науки. Белки секвенировать или тензоры считать для твердотельщиков - это явно не для таблиц задача.
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (36), 18-Июн-23, 22:21 
врочем, какие-нибудь гидравлические и ядерные модели - аналогично https://github.com/orgs/lanl-ansi/repositories?language=juli...
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

62. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 18-Июн-23, 22:24 
Как раз с маркетинговыми приемами там всё в порядки - переименовывают что уже было до них, например мультиметод.
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

65. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (65), 18-Июн-23, 22:39 
Вот не надо путать маркетинг и внутренние реализации известных подходов к полиморфизму. Полиморфизм на аргументах, как метод, понятно, что не они изобрели. Но Julia сейчас самый известный случай его применения.

А вот реальный маркетинг у них ограничивается статьями о DataFrames.jl в блоге https://bkamins.github.io/ и время от времени появляющимися статьями о нелинейной оптимизации на JuMP.jl. Остальные области развиваются очень тихо и незаметно.

Ответить | Правка | Наверх | Cообщить модератору

67. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Обмазанный смузиприлиз (?), 18-Июн-23, 22:49 
Параметрический полиморфизм это не метод, а свойство семантики системы типов.
С++ и Rust не в счёт?
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (36), 19-Июн-23, 00:00 
У C++ полиморфизм по схеме предок-потомок, а не параметрический. Не можете вы в C++ создать пачку методов разных классов вне классов и заставить его разбираться с тем, какой вызвать. Про Rust не знаю.
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 19-Июн-23, 00:58 
Параметрический полиморфизм здесь был упомянут вместо полиморфизма над аргументами, упомянутого выше. Не утверждалось, что в С++ истинный параметрический полиморфизм. Семантически реализуется как ad-hoc полиморфизм. Как реализация через перегрузку функций, операторов и интерфейсы для фактических типов. В С++ это выводится из всей иерархии типов (наследование и раздувание кода), а в Rust через реализованные для типа трейты (traits). Раздувания в Rust не происходит и близко к принципу - присутствует только то что нужно.
Упоминание ПП было сторично. Первично было возражение на фразу "Полиморфизм на аргументах, как метод, понятно, что не они изобрели. Но Julia сейчас самый известный случай его применения."
Ответить | Правка | Наверх | Cообщить модератору

78. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 19-Июн-23, 01:08 
Опят же не понятно, что вы понимаете под "пачка методов". В С++ есть система шаблонов, где в одном месте одной обобщенной функцией с обобщенным параметром описывается реализация. Я подразумевал это под параметрическим полиморфизмом (как ad-hoc механизм).    
Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

81. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (36), 19-Июн-23, 01:40 
Просто вы не понимаете что такое полиморфизм у Julia. В отличии от C++, у которого полиморфизм возможнен только через таблицу виртуальных функций и не может быть никак изменён после компиляции (средствами языка, естественно, а не перезаписью адресов виртальных таблиц).

Джулийный полиморфизм заключается в том, что выбран будет тот метод из существующих в данный момент, типы атрибутов которого наиболее близки к типа вызова.

Например объявленная f(x, y) = x * y означает типы Any. И будет вызван именно этот метод функции f при любых аргументах. Что f(1, 2), что f("a", "b"). В последнем случае будет выполнена конкатенация. Но я могу объявить f(x::Number, x::Number) = x / 2, тогда f(1, 2) однозначно пойдёт в этот метод. А могу спуститься по дереву абстрактных типов и определить ещё конкретнее - f(x::Integer, y::Integer) = x / y + 1, что определит путь вызова исключительно для целых. Могу ещё больше детализировать под конкретный тип Int64, Int32 и пр. А могу определить его для другой ветви Number, например на комплексные. И у меня получается функция f с кучей методов, имеющих ровно два аргумента, но разных типов. И во время исполнения я могу определить новый метод f (например подгрузил пакет) или удалить существующий (по факту не требовалось). Пример привёл под стандартные типы, но ветку типов можно сделать свою, определяя номые методы f именно под свой тип.

А вот про C++, полагаю, что имеете в виду вовсе не полиморфизм, а выбор метода по сигнатуре с разным количеством аргмунетов. Впрочем, множественной диспетчеризацией, а не полиморфизмом в Julia они назвали это, скорее всего, из-за общности вызова. Им всё равно это полиморфизм на новом типе или подбор сигнатуры под новый набор аргументов.

Ответить | Правка | Наверх | Cообщить модератору

83. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (83), 19-Июн-23, 07:27 
> Джулийный полиморфизм заключается в том, что выбран будет тот метод из существующих в данный момент, типы атрибутов которого наиболее близки к типа вызова.

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

Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (36), 19-Июн-23, 07:36 
У Джулии нет неопределённой реализации. Типы всегда определены, но если не указаны явно, это означает тип Any как корень дерева абстрактных типов.
Ответить | Правка | Наверх | Cообщить модератору

79. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (80), 19-Июн-23, 01:20 
> Не можете вы в C++ создать пачку методов разных классов вне классов и заставить его разбираться с тем, какой вызвать.

Это почему же? В С++ тип легко определяется во время выполнения. Дальше switch по фактическому типу на нужную функцию. Или через таблицу виртуальных функций. В Си кстати также можно реализовать полиморфизм через виртуальные функции.

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

82. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +1 +/
Сообщение от Аноним (83), 19-Июн-23, 07:24 
Вот примеры для Rust:

//Обобщенные функции Fmul и Fplus
use std::ops::Add;

fn Fmul<T>(x:T, y:T) -> T::Output
where T: std::ops::Mul  // для типов, реализующих трейт Умножение
{ x * y }

#[derive(Debug,Copy,Clone)]
struct Point {
    x:i32,
    y:i32,
}
impl Add for Point {
    type Output = Self;
    fn add(self, p2: Self) -> Self {
        Self {x: self.x + p2.x, y: self.y + p2.y}
    }
}

#[derive(Debug,Clone)]
struct WrappedString {
    s:String,
}
impl Add for WrappedString {
    type Output = Self;
    fn add(self, s2: Self) -> Self {
        Self {s: self.s + &s2.s}  
    }
}

fn Fplus<T>(x:T, y:T) -> T::Output
where T: std::ops::Add // для всех типов, реализующих трейт Сложение
{ x + y }

fn main(){
    let i1:i32 = -3;
    let i2:i32 = 4;
    println!("{:?}", Fmul(&i1,&i2));
    let u1:u32 = 30;
    let u2:u32 = 40;
    println!("{:?}", Fmul(&u1,&u2));
    let p1 = Point{x: 3, y: 4};
    let p2 = Point{x: 5, y: 6};
    let s1 = WrappedString{s:"Склей".to_string()};
    let s2 = WrappedString{s:"ка".to_string()};
    println!("{:?}", Fplus(p1,p2));
    println!("{:?}", Fplus(s1,s2).s);
    println!("{:?}", "Склей".to_string()+"ка");  
    println!("{:?}", Fplus(&u1,&u2));
}

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

71. "Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."  +/
Сообщение от Аноним (2), 18-Июн-23, 23:21 
Тунеядцам с их моделями делать на пьедестале нечего.
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру