~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 4188D968023A608FDE63A9EF8902464D__1712083860 ✰
Заголовок документа оригинал.:
✰ NumPy - Wikipedia ✰
Заголовок документа перевод.:
✰ NumPy — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/NumPy ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/41/4d/4188d968023a608fde63a9ef8902464d.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/41/4d/4188d968023a608fde63a9ef8902464d__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 02:07:26 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 2 April 2024, at 21:51 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

NumPy — Википедия Jump to content

NumPy

Из Википедии, бесплатной энциклопедии
Оригинальный автор(ы) Трэвис Олифант
Разработчики) Общественный проект
Начальная версия Как Numeric, 1995 ( 1995 ) ; как NumPy, 2006 ( 2006 )
Стабильная версия
1.26.4 [1] / 5 февраля 2024 г .; 4 месяца назад ( 5 февраля 2024 г. )
Репозиторий
Написано в Питон , С
Операционная система Кросс-платформенный
Тип Численный анализ
Лицензия БСД [2]
Веб-сайт бестолковый .org  Edit this on Wikidata

NumPy (произносится / ˈ n ʌ m p / NUM -py ) — библиотека для языка программирования Python , добавляющая поддержку больших многомерных массивов и матриц , а также большую коллекцию высокого уровня математических функций для работы с ними. эти массивы. [3] Предшественник NumPy, Numeric, был первоначально создан Джимом Хугунином при участии нескольких других разработчиков. В 2005 году Трэвис Олифант создал NumPy, включив в Numeric функции конкурирующего Numarray с обширными модификациями. NumPy — это программное обеспечение с открытым исходным кодом , в котором участвует множество разработчиков. NumPy — это проект, финансируемый NumFOCUS. [4]

История [ править ]

матрица-подпись [ править ]

Язык программирования Python изначально не был предназначен для численных вычислений, но сразу привлек внимание научного и инженерного сообщества. В 1995 году была основана группа специальных интересов (SIG) Matrix-sig с целью определения на массивах пакета вычислений ; среди его членов был дизайнер и сопровождающий Python Гвидо ван Россум , который расширил синтаксис Python (в частности, синтаксис индексирования). [5] ), чтобы упростить вычисления с массивами . [6]

Числовой [ править ]

Реализация матричного пакета была завершена Джимом Фултоном, а затем обобщена. [ нужны дальнейшие объяснения ] Джимом Хугунином и назван Numeric [6] (также известные как «Числовые расширения Python» или «NumPy»), с влиянием APL семейства языков , Basis, MATLAB , FORTRAN , S и S+ и других. [7] [8] Хугунин, аспирант Массачусетского технологического института (MIT), [8] : 10  присоединился к Корпорации национальных исследовательских инициатив (CNRI) в 1997 году для работы над JPython . [6] оставив Поля Дюбуа из Ливерморской национальной лаборатории Лоуренса (LLNL) выполнять обязанности сопровождающего. [8] : 10  Среди других первых участников — Дэвид Ашер, Конрад Хинсен и Трэвис Олифант . [8] : 10 

Нумаррей [ править ]

Новый пакет под названием Numarray был написан как более гибкая замена Numeric. [9] Как и Numeric, он также устарел. [10] [11] Numarray выполнял более быстрые операции с большими массивами, но медленнее, чем Numeric, с маленькими. [12] поэтому какое-то время оба пакета использовались параллельно для разных случаев. Последняя версия Numeric (v24.2) была выпущена 11 ноября 2005 г., а последняя версия numarray (v1.5.2) — 24 августа 2006 г. [13]

Было желание занести Numeric в стандартную библиотеку Python, но Гвидо ван Россум решил, что код в том виде, в котором он тогда был, не поддерживается. [ когда? ] [14]

NumPy [ править ]

В начале 2005 года разработчик NumPy Трэвис Олифант хотел объединить сообщество вокруг единого пакета массивов и перенес функции Numarray в Numeric, выпустив результат как NumPy 1.0 в 2006 году. [9] Этот новый проект был частью SciPy . Чтобы избежать установки большого пакета SciPy только для получения объекта массива, этот новый пакет был отделен и назван NumPy. Поддержка Python 3 была добавлена ​​в 2011 году в NumPy версии 1.5.0. [15]

В 2011 году PyPy начала разработку реализации API NumPy для PyPy. [16] По состоянию на 2023 год он еще не полностью совместим с NumPy. [17]

Особенности [ править ]

NumPy нацелен на Python CPython эталонную реализацию , которая представляет собой неоптимизирующий байт-кода интерпретатор . Математические алгоритмы , написанные для этой версии Python, часто работают намного медленнее, чем скомпилированные эквиваленты, из-за отсутствия оптимизации компилятора. NumPy частично решает проблему медленности, предоставляя многомерные массивы, функции и операторы, которые эффективно работают с массивами; их использование требует переписывания некоторого кода, в основном внутренних циклов , с использованием NumPy.

Использование NumPy в Python дает функциональность, сравнимую с MATLAB , поскольку они оба интерпретируются, [18] и они оба позволяют пользователю писать быстрые программы, поскольку большинство операций работают с массивами или матрицами, а не со скалярами . Для сравнения, MATLAB может похвастаться большим количеством дополнительных наборов инструментов, в частности Simulink , тогда как NumPy внутренне интегрирован с Python, более современным и полным языком программирования . Кроме того, доступны дополнительные пакеты Python; SciPy — это библиотека, которая добавляет больше функций, подобных MATLAB, а Matplotlib — это пакет для построения графиков , который обеспечивает функции построения графиков, подобные MATLAB. Хотя Matlab может выполнять операции с разреженными матрицами, numpy сам по себе не может выполнять такие операции и требует использования библиотеки scipy.sparse. Внутри MATLAB и NumPy используются BLAS и LAPACK для эффективных вычислений линейной алгебры .

Python Привязки широко используемой компьютерного зрения библиотеки OpenCV используют массивы NumPy для хранения данных и работы с ними. Поскольку изображения с несколькими каналами представляются просто как трехмерные массивы, индексирование, нарезка или маскирование с помощью других массивов являются очень эффективными способами доступа к определенным пикселям изображения. Массив NumPy как универсальная структура данных в OpenCV для изображений, извлеченных точек функций , ядер фильтров и многого другого значительно упрощает рабочий процесс программирования и отладки . [ нужна цитата ]

Важно отметить, что многие операции NumPy снимают глобальную блокировку интерпретатора , что позволяет выполнять многопоточную обработку. [19]

NumPy также предоставляет C API, который позволяет коду Python взаимодействовать с внешними библиотеками, написанными на языках низкого уровня. [20]

ndarray данных Структура

Основная функциональность NumPy — это «ndarray», для n -мерного массива, структура данных . Эти массивы представляют собой пошаговые представления о памяти. [9] В отличие от встроенной в Python структуры данных списка, эти массивы имеют однородную типизацию: все элементы одного массива должны быть одного типа.

Такие массивы также можно просматривать в буферах памяти, выделенных расширениями C / C++ , Python и Fortran для интерпретатора CPython, без необходимости копировать данные, что обеспечивает определенную степень совместимости с существующими числовыми библиотеками. Эта функциональность используется пакетом SciPy, в который входит ряд таких библиотек (в частности, BLAS и LAPACK). NumPy имеет встроенную поддержку ndarrays , отображаемых в памяти . [9]

Ограничения [ править ]

Вставка или добавление записей в массив не так тривиальна, как со списками Python. np.pad(...)Процедура расширения массивов фактически создает новые массивы желаемой формы и значений заполнения, копирует данный массив в новый и возвращает его. NumPy np.concatenate([a1,a2])операция фактически не связывает два массива, а возвращает новый, последовательно заполненный записями из обоих заданных массивов. Изменение размерности массива с помощью np.reshape(...)возможно только до тех пор, пока количество элементов в массиве не изменится. Эти обстоятельства возникают из-за того, что массивы NumPy должны представлять собой представления в смежных буферах памяти .

Алгоритмы , которые невозможно выразить в виде векторизованной операции, обычно работают медленно, поскольку их необходимо реализовать на «чистом Python», тогда как векторизация может увеличить сложность памяти для некоторых операций с константной до линейной, поскольку необходимо создавать временные массивы размером с входы. Компиляция числового кода во время выполнения была реализована несколькими группами, чтобы избежать этих проблем; решения с открытым исходным кодом, которые взаимодействуют с NumPy, включают numexpr [21] и Нумба . [22] Cython и Pythran являются альтернативами статической компиляции.

Многие современные крупномасштабные научные вычислительные приложения предъявляют требования, превосходящие возможности массивов NumPy. компьютера Например, массивы NumPy обычно загружаются в память , емкость которой может оказаться недостаточной для анализа больших наборов данных . Кроме того, операции NumPy выполняются на одном процессоре . Однако многие операции линейной алгебры можно ускорить, выполняя их на кластерах ЦП или специализированном оборудовании, таком как графические процессоры и ТПУ , глубокого обучения на которых полагаются многие приложения . В результате за последние годы в научной экосистеме Python появилось несколько альтернативных реализаций массивов, таких как Dask для распределенных массивов и TensorFlow или JAX для вычислений на графических процессорах. Из-за своей популярности они часто реализуют подмножество NumPy API или имитируют его, так что пользователи могут изменить реализацию своего массива с минимальными изменениями в своем коде. [3] Библиотека с именем CuPy , [23] ускоренный Nvidia от инфраструктурой CUDA , он также продемонстрировал потенциал для более быстрых вычислений, являясь « заменой » NumPy. [24]

Примеры [ править ]

импортируйте   numpy   как   np 
 из   numpy.random,   импортируйте   rand 
 из   numpy.linalg,   импортируйте   решение  ,   inv 
 a  =  np  .   массив  ([[  1  ,  2  ,  3  ,  4  ],[  3  ,  4  ,  6  ,  7  ],[  5  ,  9  ,  0  ,  5  ]]) 
 a  .   транспонировать  () 

Основные операции [ править ]

>>>   а   =   НП  .   массив  ([  1  ,   2  ,   3  ,   6  ]) 
 >>>   b   =   np  .   linspace  (  0  ,   2  ,   4  )    # создаем массив из четырех одинаково расположенных точек, начиная с 0 и заканчивая 2. 
 >>>   c   =   a   -   b 
 >>>   c 
 array  ([   1.          ,    1.33333333  ,    1.66666667  ,    4.          ] ) 
 >>>   массив  **  2 
 1  ([   ,  4    ,  9    ,  36   ]  ) 

Универсальные функции [ править ]

>>>   а   =   НП  .   linspace  (  -  np  .  pi  ,   np  .  pi  ,   100  )  
 >>>   b   =   np  .   грех  (  а  ) 
 >>>   c   =   np  .   cos  (  a  ) 
 >> 
 >>>   # Функции могут принимать в качестве параметров как числа, так и массивы. 
  >>>   нп  .   грех  (  1  ) 
 0,8414709848078965 
 >>>   np  .   sin  (  np  .  array  ([  1  ,   2  ,   3  ])) 
 массив  ([  0.84147098  ,   0.90929743  ,   0.14112001  ]) 

Линейная алгебра [ править ]

>>>   из   numpy.random   import   rand 
 >>>   из   numpy.linalg   importsolve   ,   inv 
 >>>   a   =   np  .   массив  ([[  1  ,   2  ,   3  ],   [  3  ,   4  ,   6.7  ],   [  5  ,   9.0  ,   5  ]]) 
 >>>   a  .   transpose  () 
 массив  ([[   1.   ,    3.   ,    5.   ], 
        [   2.   ,    4.   ,    9.   ], 
        [   3.   ,    6.7  ,    5.   ]]) 
 >>>   inv  (  a  ) 
 массив  ([[  -  2,27683616  ,    0,96045198  ,    0,07909605  , 
        [   1,04519774  ,   -  0,56497175  ,    0,1299435   ], 
        [   0,39548023  ,    0,05649718  ,   -  0,11299435  ]]) 
 >>>   б   =    НП  .   array  ([  3  ,   2  ,   1  ]) 
 >>>   решить  (  a  ,   b  )    # решить уравнение ax = b 
 array  ([  -  4.83050847  ,    2.13559322  ,    1.18644068  ]) 
 >>>   c   =   rand  (  3  ,   3  )   *   20    # создаем случайную матрицу 3x3 значений в пределах [0,1], масштабированную на 20 
 >>>   c 
 array  ([[    3.98732789  ,     2.47702609  ,     4.71167924  ], 
        [    9.24410671  ,     5.5240412   ,    10.6468792   ], 
        [   10.38136661  ,     8.44968437  ,    15.17639591  ]]) 
 > >>   нп  .   dot  (  a  ,   c  )    # 
 массив  умножения матрицы ([[    53.61964114  ,     38.8741616   ,     71.53462537  ], 
        [   118.4935668   ,     86.14012835  ,    158.40440712  ], 
        [   155.04043289  ,    104. 3499231   ,    195.26228855  ]]) 
 >>>   a   @   c   # Начиная с Python 3.5 и NumPy 1.10 
 массив  ([[    53.61964114  ,     38.8741616   ,     71.53462537  ], 
        [   118.4935668   ,     86.14012835  ,    158.40440712  ], 
        [   155.04043289  ,    104.3499231   ,    195.26228855  ]]) 

Многомерные массивы [ править ]

>>>   М   =   НП  .   нули  (  форма  =  (  2  ,   3  ,   5  ,   7  ,   11  )) 
 >>>   T   =   np  .   транспонировать  (  M  ,   (  4  ,   2  ,   1  ,   3  ,   0  )) 
 >>>   T  .   форма 
 (  11  ,   5  ,   3  ,   7  ,   2  ) 

Интеграция с OpenCV [ править ]

>>>   импортировать   numpy   как   np 
 >>>   импортировать   cv2 
 >>>   r   =   np  .   reshape  (  np  .  arange  (  256  *  256  )  %  256  ,(  256  ,  256  ))    # Массив пикселей 256x256 с горизонтальным градиентом от 0 до 255 для канала красного цвета 
 >>>   g   =   np  .   Zeros_like  (  r  )    # массив того же размера и типа, что и r, но заполнен нулями для канала зеленого цвета 
 >>>   b   =   r  .   T   # транспонированный r даст вертикальный градиент для канала синего цвета 
 >>>   cv2  .   imwrite  (  'gradients.png'  ,   np  .  dstack  ([  b  ,  g  ,  r  ]))    # Изображения OpenCV интерпретируются как BGR, массив с накоплением глубины будет записан в 8-битный PNG-файл RGB с именем 'gradients.png' 
 Истинный 

Поиск ближайшего соседа [ править ]

Итерационный алгоритм Python и векторизованная версия NumPy.

>>>   # # # Чистый итеративный Python # # # 
 >>>   Points   =   [[  9  ,  2  ,  8  ],[  4  ,  7  ,  2  ],[  3  ,  4  ,  4  ],[  5  ,  6  ,  9  ], [  5  ,  0  ,  7  ],[  8  ,  2  ,  7  ],[  0  ,  3  ,  2  ],[  7  ,  3  ,  0  ],[  6  ,  1  ,  1  ],[  2  ,  9  ,  6  ]] 
 >> >   qPoint   =   [  4  ,  5  ,  3  ] 
 >>>   minIdx   =   -  1 
 >>>   minDist   =   -  1 
 >>>   для   idx  ,   точка   в   перечислении  (  points  ):    # перебрать все точки 
 ...       dist   =   sum  ([ (  dp  -  dq  )  **  2   for   dp  ,  dq   в   zip  (  point  ,  qPoint  )])  **  0.5    # вычислить евклидово расстояние для каждой точки до q 
 ...       if   dist   <   minDist   или   minDist   <   0  :    # если необходимо, обновить минимальное расстояние и индекс соответствующей точки 
 ...           minDist   =   dist 
 ...           minIdx   =   idx 

 >>>   print  (  f  'Ближайшая точка к q:  {  points  [  minIdx  ]  }  '  ) 
 Ближайшая   точка   к   q  :   [  3  ,   4  ,   4  ] 

 >>>   # # # Эквивалентная векторизация NumPy # # # 
 >>>   import   numpy   as   np 
 >>>   Points   =   np  .   массив  ([[  9  ,  2  ,  8  ],[  4  ,  7  ,  2  ],[  3  ,  4  ,  4  ],[  5  ,  6  ,  9  ],[  5  ,  0  ,  7  ],[  8  ,  2  ,  7  ] ,[  0  ,  3  ,  2  ],[  7  ,  3  ,  0  ],[  6  ,  1  ,  1  ],[  2  ,  9  ,  6  ]]) 
 >>>   qPoint   =   np  .   массив  ([  4  ,  5  ,  3  ]) 
 >>>   minIdx   =   np  .   argmin  (  np.linalg.norm  >>>  :  все евклидовы  # вычислить  (  points  -  qPoint  ,  axis  =  1  ))    расстояния одновременно и вернуть индекс наименьшего из них 
 print   (  f  '  Ближайшая точка к q  {  points  [  minIdx  ]  }  '  ) 
 Ближайшая   точка   к   q  :   [  3   4   4  ] 

F2PY [ править ]

Быстро переносите собственный код для более быстрых сценариев. [25] [26] [27]

!   Пример вызова собственного кода Python Fortran 
 !   f2py -c -m foo *.f90 
 !   Скомпилируйте Fortran в именованный модуль Python, используя операторы намерения 
 !   Только подпрограммы Фортрана не являются функциями - проще, чем JNI с оболочкой C 
 !   требует gfortran и делает 
 подпрограмму  ftest  (  a  ,   b  ,   n  ,   c  ,   d  ) 
    неявной none 
    целое  ,   намерение  (  in  )    ::   a 
    целое число  ,   намерение  (  in  )    ::   b 
    целое число  ,   намерение  (  in  )    ::   n 
    целое число  ,   намерение  (  out  )   ::   c 
    целое число  ,   намерение  (  out  )   ::   d 
    целое число   ::   i 
    c   =   0 
    do  i   =   1  ,   n 
       c   =   a   +   b   +   c 
    end do 
    d   =   (  c   *   n  )   *   (  -  1  ) 
 конец подпрограммы  ftest 
>>>  импортировать   numpy   как   np 
 >>>  импортировать   foo 
 >>>  a   =   foo  .   ftest  (  1  ,   2  ,   3  )   # или c,d = вместо ac и ad 
 >>>  print  (  a  ) 
 (9,-27) 
 >>>  help  (  'foo.ftest'  )   # foo.ftest.__doc__ 

См. также [ править ]

Ссылки [ править ]

  1. ^ «Теги» . Проверено 7 февраля 2024 г.
  2. ^ «NumPy — NumPy» . numpy.org . Разработчики NumPy.
  3. ^ Перейти обратно: а б Чарльз Р. Харрис; К. Джаррод Миллман; Стивен Дж. ван дер Уолт; и другие. (16 сентября 2020 г.). «Программирование массивов с помощью NumPy» (PDF ) Природа 585 (7825): 357–362. arXiv : 2006.10256 . дои : 10.1038/S41586-020-2649-2 . ISSN   1476-4687 . ПМЦ   7759461 . ПМИД   32939066 . Викиданные   Q9
  4. ^ «Проекты, спонсируемые NumFOCUS» . NumFOCUS . Проверено 25 октября 2021 г.
  5. ^ «Индексирование — Руководство по NumPy v1.20» . numpy.org . Проверено 06 апреля 2021 г.
  6. ^ Перейти обратно: а б с Миллман, К. Джаррод; Айвазис, Михаил (2011). «Python для ученых и инженеров» . Вычисления в науке и технике . 13 (2): 9–12. Бибкод : 2011CSE....13b...9M . дои : 10.1109/MCSE.2011.36 . Архивировано из оригинала 19 февраля 2019 г. Проверено 7 июля 2014 г.
  7. ^ Трэвис Олифант (2007). «Python для научных вычислений» (PDF) . Вычисления в науке и технике . Архивировано из оригинала (PDF) 14 октября 2013 г. Проверено 12 октября 2013 г.
  8. ^ Перейти обратно: а б с д Дэвид Ашер; Поль Ф. Дюбуа; Конрад Хинсен; Джим Хугунин; Трэвис Олифант (1999). «Численный Python» (PDF) .
  9. ^ Перейти обратно: а б с д ван дер Вальт, Стефан; Кольбер, С. Крис; Варокво, Гаэль (2011). «Массив NumPy: структура для эффективных численных вычислений». Вычисления в науке и технике . 13 (2). IEEE: 22. arXiv : 1102.1523 . Бибкод : 2011CSE....13b..22V . дои : 10.1109/MCSE.2011.37 . S2CID   16907816 .
  10. ^ «Домашняя страница Numarray» . Проверено 24 июня 2006 г.
  11. ^ Трэвис Э. Олифант (7 декабря 2006 г.). Руководство по NumPy . Проверено 2 февраля 2017 г.
  12. ^ Трэвис Олифант и другие разработчики SciPy. «[Numpy-discussion] Статус числового значения» . Проверено 2 февраля 2017 г.
  13. ^ «Файлы NumPy Sourceforge» . Проверено 24 марта 2008 г.
  14. ^ «History_of_SciPy — дамп вики SciPy» . scipy.github.io .
  15. ^ «Примечания к выпуску NumPy 1.5.0» . Проверено 29 апреля 2011 г.
  16. ^ «Блог о статусе PyPy: финансирование и обновление статуса NumPy» . Проверено 22 декабря 2011 г.
  17. ^ «Статус NumPyPy» . Проверено 19 декабря 2023 г.
  18. ^ Сообщество SciPy. «NumPy для пользователей Matlab» . Проверено 2 февраля 2017 г.
  19. ^ "numpy примечания к выпуску" .
  20. ^ МакКинни, Уэс (2014). «Основы NumPy: массивы и векторизованные вычисления». Python для анализа данных (первое издание, третий выпуск). О'Рейли. п. 79. ИСБН  978-1-449-31979-3 .
  21. ^ Франческ Альтернативный. "числоэкспр" . Гитхаб . Проверено 8 марта 2014 г.
  22. ^ «Нумба» . Проверено 8 марта 2014 г.
  23. ^ Шохей Хидо — CuPy: NumPy-совместимая библиотека для графического процессора — PyCon 2018 , заархивировано из оригинала 21 декабря 2021 г. , получено 11 мая 2021 г.
  24. ^ Энщев, Петер Андреас (23 июля 2019 г.). «Ускорение CuPy на одном графическом процессоре» . Середина . Проверено 11 мая 2021 г.
  25. ^ «Документы F2PY из NumPy» . НумПи . Проверено 18 апреля 2022 г.
  26. ^ Уорти, Гай (3 января 2022 г.). «Питон против Фортрана» . Гай Уорти . Гай Уорти . Проверено 18 апреля 2022 г.
  27. ^ Шелл, Скотт. «Написание быстрых подпрограмм Фортрана для Python» (PDF) . Инженерный отдел УЦСБ . Калифорнийский университет, Санта-Барбара . Проверено 18 апреля 2022 г.

Дальнейшее чтение [ править ]

  • Брессерт, Эли (2012). Scipy и Numpy: обзор для разработчиков . О'Рейли. ISBN  978-1-4493-0546-8 .
  • МакКинни, Уэс (2017). Python для анализа данных: обработка данных с помощью Pandas, NumPy и IPython (2-е изд.). Севастополь: О'Рейли. ISBN  978-1-4919-5766-0 .
  • ВандерПлас, Джейк (2016). «Введение в NumPy». Справочник по Python Data Science: основные инструменты для работы с данными . О'Рейли. стр. 33–96. ISBN  978-1-4919-1205-8 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 4188D968023A608FDE63A9EF8902464D__1712083860
URL1:https://en.wikipedia.org/wiki/NumPy
Заголовок, (Title) документа по адресу, URL1:
NumPy - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)