The OpenNET Project / Index page

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



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

"Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от opennews (??), 30-Июл-19, 10:03 
Состоялся (https://www.mail-archive.com/python-announce-list@pytho...) релиз Python-библиотеки для научных вычислений NumPy 1.17 (http://www.numpy.org/), ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных  расчётов. Код проекта написан на языке Python с применением оптимизаций на языке Си и распространяется (https://github.com/numpy/numpy/) под лицензией BSD.


Выпуск NumPy 1.17 примечателен (https://github.com/numpy/numpy/blob/master/doc/release/1.17....) внесением оптимизаций, существенно повышающих производительность некоторых операций, и прекращением поддержки Python 2.7. Для работы теперь необходимо наличие Python 3.5-3.7. Среди других изменения:


-   Реализация модуля FFT (Fast Fourier Transforms) для выполнения быстрого преобразования Фурье переведена с  fftpack на более быстрый и точный pocketfft (https://gitlab.mpcdf.mpg.de/mtr/pocketfft).
-  В состав включён новый расширяемый модуль
random, предлагающий на выбор четыре генератора псевдослучайных чисел (MT19937, PCG64, Philox и SFC64) и реализующий улучшенный метод формирования энтропии в условиях использования в параллельно выполняемых процессах.  
-  Добавлены алгоритмы поразрядной (radix) и гибридной  (timsort (https://ru.wikipedia.org/wiki/Timsort)) сортировки, которые автоматически выбираются в зависимости от типа данных.
-  По умолчанию включена возможность переопределения функций NumPy.

URL: https://www.mail-archive.com/python-announce-list@pytho...
Новость: https://www.opennet.ru/opennews/art.shtml?num=51186

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

Оглавление

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


1. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Аноним (1), 30-Июл-19, 10:03 
FFT с помощью блустайна, джва года ждал!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –6 +/
Сообщение от Аноним (2), 30-Июл-19, 11:49 
а может NumPy на swift переписать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 30-Июл-19, 11:59 
> а может NumPy на swift переписать?

Нет, ты не "может".  Тебе
https://www.opennet.ru/openforum/vsluhforumID3/117874.html#36
санитароы всё время мешают.

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

4. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от eRIC (ok), 30-Июл-19, 12:03 
> а может NumPy на swift переписать?

зачем Swift?

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

5. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (5), 30-Июл-19, 13:19 
Разработку интенсивных алгоритмов вычислительной математики лучше выполнять на С с тем, чтобы добиться 1) скорости, 2) кроссплатформенности. Для прочих языков достаточно иметь интерфейс. На что, собственно, и намекают в новости.

Во всяком случае, в нашей практике такой подход оказался успешным.

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

6. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (2), 30-Июл-19, 13:25 
C может и быстрый и кроссплатформенный, но есть сомнения по поводу математики в C, именно вопросы по поводу приведения типов и вещественных чисел
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Аноним (5), 30-Июл-19, 13:42 
Что означает в данном контексте "приведение типов"?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +4 +/
Сообщение от Andrey Mitrofanov_N0 (??), 30-Июл-19, 13:47 
> Что означает в данном контексте "приведение типов"?

ваня_конвертирует_BigFloat_в_1-битный_флоат.avi

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

10. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Ivan_83 (ok), 30-Июл-19, 14:37 
Так в си вам никто не запрещает реализовывать любую математику с любым приведением типов.
Я для себя реализовал работу с длинными числами чтобы реализовать элиптическую крипту и она даже работает.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Аноним (-), 30-Июл-19, 13:44 
А какой в этом смысл? Нужно писать математические программы - используйте правильные языки типа Julia. То, что делает numpy у неё в базовой библиотеке. Если нужно машинное обучение - https://github.com/alan-turing-institute/MLJ.jl

И, самое главное, большинство библиотек для Julia написано на Julia, как бы странно для питонистов это ни звучало.

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

11. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Ivan_83 (ok), 30-Июл-19, 14:38 
Всё написано на си (кроме того что написано на асме), нужно использовать только си, остальное лишние сущности :)
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

16. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (16), 30-Июл-19, 15:04 
> нужно использовать только си, остальное лишние сущности :)

Любой алгоритм можно выразить в терминах электронов, текущих по проводникам или полупроводникам процессора.... Зачем что-то большее?.....

А если серьёзно, то сущности должны быть ровно те, которые подходят данной предметной области. Любые другие сущности приводят к ошибкам, снижению скорости разработки и отладки. При всей незаменимости С в математике его используют лишь с горя, когда либо разрабы ничего больше не знают, либо надо писать нашлёпку к питону.

И не лезте с другими сущностями в чужой монастырь....

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

19. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Ivan_83 (ok), 30-Июл-19, 16:47 
Как минимум затем что математика используется в криптографии, а криптография используется везде, в том числе и там где питон даже не запустится.

Если бы не синтаксис питона завязанные на количество пробелов я бы им скорее всего активно пользовался :)

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

18. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +2 +/
Сообщение от имя (?), 30-Июл-19, 15:38 
Вот и выросло поколение, которое про фортран даже не слышало.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

20. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Ivan_83 (ok), 30-Июл-19, 16:49 
К сожалению слышало.
Насколько помню этот самый numpy его юзает через *BLAS прослойку, из за этого приходится собирать и таскать целый gcc.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

22. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (5), 30-Июл-19, 18:40 
Не представляет никакой проблемы совместное использование Фортрана и С.

По секрету для обучающихся. Не представляет никакой проблемы математика на С и интерфейс пользлвателя, скажем, на Visual Basic for Application.

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

36. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Ivan_83 (ok), 01-Авг-19, 15:27 
Плевать на фортран, мне он мешается только тем что ради него пол часа гцц компеляется.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

12. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –3 +/
Сообщение от Аноним (12), 30-Июл-19, 14:43 
Питономатики, подскажите пожалуйста как это полечить:
$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 148.7-48.7

99.99999999999999

Как быстрофикс, я предлагаю переписать кусок программы на С, собрать *.so и вызвать через CDLL. Может есть какие-то биндинги, типа GMP, только живые и покрывающие все арифметические действия? Должен же быть менее костыльный способ...

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

13. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +1 +/
Сообщение от Andrey Mitrofanov_N0 (??), 30-Июл-19, 14:47 
> Питономатики, подскажите пожалуйста как это полечить:
> $ python3
>>>> 148.7-48.7
> 99.99999999999999
> Как быстрофикс, я предлагаю переписать

Пс-сст, пацанчик, возьми немного NumPy, недорого !

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

29. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Аноним (12), 31-Июл-19, 15:14 
>>> numpy.sum([148.7, -48.7])

99.999999999999986

>>> gmpy2.sub(148.7, 48.7)

mpfr('99.999999999999986')
>>> gmpy2.add(148.7, -48.7)

mpfr('99.999999999999986')

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

14. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +9 +/
Сообщение от Мама (?), 30-Июл-19, 14:56 
Аноним открывает для себя волшебный мир арифметики с плавающей точкой.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

34. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Иваныч (??), 01-Авг-19, 02:51 
Мне нравится когда числа с плавающей точкой используются в качестве примера ущербности JS. Не то чтобы там костылей не было, их даже сверх, но использовать числа с плавающей точкой как пример ущербности любого ЯП это уровень.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

15. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от n80 (?), 30-Июл-19, 15:03 
> Питономатики, подскажите пожалуйста как это полечить:
> $ python3
> Python 3.6.8 (default, Jan 14 2019, 11:02:34)
> [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
> Type "help", "copyright", "credits" or "license" for more information.
>>>> 148.7-48.7
> 99.99999999999999

Добро пожаловать в увлекательный мир чисел с плавающей точкой. Это нормальное поведение для float/double, в C то же самое, даже в железе так (в смысле, двоичные дроби под капотом, в которые не любые десятичные переводятся точно).

Если хочется работать именно с десятичными дробями вместо двоичных - есть модуль decimal в стандартной библиотеке.
А если просто вывод не нравится - есть функция round или указание ширины вывода (как в C!):

In [1]: a = 148.7
In [2]: b = 48.7
In [3]: a - b
Out[3]: 99.99999999999999

In [4]: round(a - b, 2)
Out[4]: 100.0

In [5]: round(a - b, 3)
Out[5]: 100.0

In [6]: '%.2f' % (a - b)
Out[6]: '100.00'

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

30. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (12), 31-Июл-19, 15:25 
Спасибо! Помогло.

Именно для этого случая:
https://docs.python.org/2/library/decimal.html

>>> from decimal import *
>>> getcontext().prec = 10
>>> Decimal(148.7) - Decimal(48.7)

Decimal('100.000')

Правда, точность пришлось указать пониже.

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

33. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от n80 (?), 01-Авг-19, 01:48 
Только вот на вход в Decimal лучше строку подавать (кавычки добавить), а не float, а то будет двойное преобразование (сначала при разборе скрипта будет преобразование из десятичной записи в питоновский float, который соответствует сишному double, потом из этого float в структуру внутри объекта типа Decimal), потеря точности и боль-отчаяние. См.:

In [2]: import decimal

In [3]: decimal.Decimal(7500.42)
Out[3]: Decimal('7500.420000000000072759576141834259033203125')

In [4]: decimal.Decimal('7500.42')
Out[4]: Decimal('7500.42')

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

17. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +1 +/
Сообщение от Аноним84701 (ok), 30-Июл-19, 15:15 
> Питономатики, подскажите пожалуйста как это полечить:
> $ python3
> Python 3.6.8 (default, Jan 14 2019, 11:02:34)
> [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
> Type "help", "copyright", "credits" or "license" for more information.
>>>> 148.7-48.7
> 99.99999999999999

Например прочитать https://docs.python.org/3/tutorial/floatingpoint.html


>>> format(148.7-48.7,'.2f')

'100.00'
>>> format(148.7-48.7,'.10f')

'100.0000000000'
>>> format(148.7-48.7,'.20f')

'99.99999999999998578915'

> Как быстрофикс, я предлагаю переписать кусок программы на С, собрать *.so

Вы не поверите, но:


% cat arith.c &&  gcc -Wall -Wextra -O2  -std=c99 arith.c && ./a.out
#include <stdio.h>
int main(void) {
    double res = 148.7 - 48.7;
    printf("\n%f, %.13f, %.14f", res, res, res);
    return 0;
}
100.000000, 100.0000000000000, 99.99999999999999

Ну и раз сегодня такой день, то открою страшную тайну:
https://github.com/python/cpython/tree/master/Python
>  Python 60.8% C 31.9%
>

Мне жаль :(

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

21. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от аноним3 (?), 30-Июл-19, 18:17 
Python 3.5.2 (default, Feb 23 2018, 06:12:47)
[GCC 5.4.1 20170404 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 147.8-47.8

100.00000000000001
и такое бывает)))

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

23. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Аноним (5), 30-Июл-19, 18:43 
Про MACHEPS слышали? Так называют наименьшее число с десятичной точкой, которое способна различить конкретная машина. Рекомендуется вычислить его до любого полезного вычисления и далее использовать для проверки значимости.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

24. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  –1 +/
Сообщение от Ordu (ok), 30-Июл-19, 22:07 
В математике 99.(9)==100. Ряд 9/10+9/10^2+9/10^3 сходится к 1. Это известный и неустранимый косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи. В мире вычислений с ограниченной точностью, ситуация усугубляется ограниченной точностью.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

25. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +1 +/
Сообщение от EnemyOfDemocracy (?), 31-Июл-19, 02:23 
Теперь понятно, почему теперь банки кофе продаются не 100 грамм, а 90 за ту же цену. Математика!
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

27. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Andrey Mitrofanov_N0 (??), 31-Июл-19, 09:10 
>не 100 грамм, а 90 за ту же цену.

А вот это уже ZOG, рептилоиды, ротшильды и заговор.  Как Вы не понимаете!7

>Математика!

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

35. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Иваныч (??), 01-Авг-19, 02:52 
Американцы!
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

26. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Andrey Mitrofanov_N0 (??), 31-Июл-19, 09:08 
>Это известный и неустранимый
> косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи.

Не-е-е, неустранимы дураки в интернетах, ...

...а это _тупо_ разница в точности представления _дробей_ конечными по длинне дробями с другим, не кратным, основанием.  

При переводе "точной" десятичной записи в "двоичную" плавучку "в половине случаев"(ТМ) получается бесконечная дробь (а-ля 1.3 = 0.(3)) и...
  та-да-а-а!!
...ошибка округления.

Вот, блин, развели детсад.

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

28. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Ordu (ok), 31-Июл-19, 12:12 
>>Это известный и неустранимый
>> косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи.
> Не-е-е, неустранимы дураки в интернетах, ...

Совершенно верно.

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

32. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +1 +/
Сообщение от Аноним (32), 01-Авг-19, 00:09 
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (- 148.7 48.7)
100.0
*

:-)

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

37. "Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0"  +/
Сообщение от Аноним (-), 05-Авг-19, 00:40 
А что pocketfft лучше чем fftw?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




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

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