The OpenNET Project / Index page

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

Выпуск Python-библиотеки для научных вычислений NumPy 1.17.0

30.07.2019 04:41

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

Выпуск NumPy 1.17 примечателен внесением оптимизаций, существенно повышающих производительность некоторых операций, и прекращением поддержки Python 2.7. Для работы теперь необходимо наличие Python 3.5-3.7. Среди других изменения:

  • Реализация модуля FFT (Fast Fourier Transforms) для выполнения быстрого преобразования Фурье переведена с fftpack на более быстрый и точный pocketfft.
  • В состав включён новый расширяемый модуль random, предлагающий на выбор четыре генератора псевдослучайных чисел (MT19937, PCG64, Philox и SFC64) и реализующий улучшенный метод формирования энтропии в условиях использования в параллельно выполняемых процессах.
  • Добавлены алгоритмы поразрядной (radix) и гибридной (timsort) сортировки, которые автоматически выбираются в зависимости от типа данных.
  • По умолчанию включена возможность переопределения функций NumPy.


  1. Главная ссылка к новости (https://www.mail-archive.com/p...)
  2. OpenNews: Доступен NumPy 1.16, последний релиз с поддержкой Python 2
  3. OpenNews: Опубликован план прекращения поддержки Python 2 в NumPy
  4. OpenNews: Релиз системы для математических расчётов GNU Octave 5
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51186-numpy
Ключевые слова: numpy, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:03, 30/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    FFT с помощью блустайна, джва года ждал!
     
  • 1.2, Аноним (2), 11:49, 30/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    а может NumPy на swift переписать?
     
     
  • 2.3, Andrey Mitrofanov_N0 (??), 11:59, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а может NumPy на swift переписать?

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

     
  • 2.4, eRIC (ok), 12:03, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > а может NumPy на swift переписать?

    зачем Swift?

     
  • 2.5, Аноним (5), 13:19, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Разработку интенсивных алгоритмов вычислительной математики лучше выполнять на С с тем, чтобы добиться 1) скорости, 2) кроссплатформенности. Для прочих языков достаточно иметь интерфейс. На что, собственно, и намекают в новости.

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

     
     
  • 3.6, Аноним (2), 13:25, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    C может и быстрый и кроссплатформенный, но есть сомнения по поводу математики в C, именно вопросы по поводу приведения типов и вещественных чисел
     
     
  • 4.7, Аноним (5), 13:42, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что означает в данном контексте "приведение типов"?
     
     
  • 5.9, Andrey Mitrofanov_N0 (??), 13:47, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Что означает в данном контексте "приведение типов"?

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

     
  • 4.10, Ivan_83 (ok), 14:37, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так в си вам никто не запрещает реализовывать любую математику с любым приведением типов.
    Я для себя реализовал работу с длинными числами чтобы реализовать элиптическую крипту и она даже работает.
     
  • 2.8, Аноним (-), 13:44, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А какой в этом смысл? Нужно писать математические программы - используйте правильные языки типа Julia. То, что делает numpy у неё в базовой библиотеке. Если нужно машинное обучение - https://github.com/alan-turing-institute/MLJ.jl

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

     
     
  • 3.11, Ivan_83 (ok), 14:38, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Всё написано на си (кроме того что написано на асме), нужно использовать только си, остальное лишние сущности :)
     
     
  • 4.16, Аноним (16), 15:04, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > нужно использовать только си, остальное лишние сущности :)

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

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

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

     
     
  • 5.19, Ivan_83 (ok), 16:47, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как минимум затем что математика используется в криптографии, а криптография используется везде, в том числе и там где питон даже не запустится.

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

     
  • 4.18, имя (?), 15:38, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот и выросло поколение, которое про фортран даже не слышало.
     
     
  • 5.20, Ivan_83 (ok), 16:49, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    К сожалению слышало.
    Насколько помню этот самый numpy его юзает через *BLAS прослойку, из за этого приходится собирать и таскать целый gcc.
     
     
  • 6.22, Аноним (5), 18:40, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не представляет никакой проблемы совместное использование Фортрана и С.

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

     
     
  • 7.36, Ivan_83 (ok), 15:27, 01/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Плевать на фортран, мне он мешается только тем что ради него пол часа гцц компеляется.
     

  • 1.12, Аноним (12), 14:43, 30/07/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Питономатики, подскажите пожалуйста как это полечить:
    $ 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, только живые и покрывающие все арифметические действия? Должен же быть менее костыльный способ...

     
     
  • 2.13, Andrey Mitrofanov_N0 (??), 14:47, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Питономатики, подскажите пожалуйста как это полечить:
    > $ python3
    >>>> 148.7-48.7
    > 99.99999999999999
    > Как быстрофикс, я предлагаю переписать

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

     
     
  • 3.29, Аноним (12), 15:14, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> 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')

     
  • 2.14, Мама (?), 14:56, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Аноним открывает для себя волшебный мир арифметики с плавающей точкой.
     
     
  • 3.34, Иваныч (??), 02:51, 01/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Мне нравится когда числа с плавающей точкой используются в качестве примера ущербности JS. Не то чтобы там костылей не было, их даже сверх, но использовать числа с плавающей точкой как пример ущербности любого ЯП это уровень.
     
  • 2.15, n80 (?), 15:03, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Питономатики, подскажите пожалуйста как это полечить:
    > $ 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'

     
     
  • 3.30, Аноним (12), 15:25, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Помогло.

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

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

    Decimal('100.000')

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

     
     
  • 4.33, n80 (?), 01:48, 01/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Только вот на вход в 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')

     
  • 2.17, Аноним84701 (ok), 15:15, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Питономатики, подскажите пожалуйста как это полечить:
    > $ 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%
    >

    Мне жаль :(

     
  • 2.21, аноним3 (?), 18:17, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    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
    и такое бывает)))

     
  • 2.23, Аноним (5), 18:43, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Про MACHEPS слышали? Так называют наименьшее число с десятичной точкой, которое способна различить конкретная машина. Рекомендуется вычислить его до любого полезного вычисления и далее использовать для проверки значимости.
     
  • 2.24, Ordu (ok), 22:07, 30/07/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В математике 99.(9)==100. Ряд 9/10+9/10^2+9/10^3 сходится к 1. Это известный и неустранимый косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи. В мире вычислений с ограниченной точностью, ситуация усугубляется ограниченной точностью.
     
     
  • 3.25, EnemyOfDemocracy (?), 02:23, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теперь понятно, почему теперь банки кофе продаются не 100 грамм, а 90 за ту же цену. Математика!
     
     
  • 4.27, Andrey Mitrofanov_N0 (??), 09:10, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >не 100 грамм, а 90 за ту же цену.

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

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

     
     
  • 5.35, Иваныч (??), 02:52, 01/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Американцы!
     
  • 3.26, Andrey Mitrofanov_N0 (??), 09:08, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Это известный и неустранимый
    > косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи.

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

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

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

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

     
     
  • 4.28, Ordu (ok), 12:12, 31/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>Это известный и неустранимый
    >> косяк позиционной системы счисления: некоторые числа имеют больше одного способа записи.
    > Не-е-е, неустранимы дураки в интернетах, ...

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

     

  • 1.32, Аноним (32), 00:09, 01/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    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
    *

    :-)

     
  • 1.37, Аноним (-), 00:40, 05/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что pocketfft лучше чем fftw?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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