logo

Масив NumPy в Python

Списки Python замінюють масиви, але вони не забезпечують продуктивності, необхідної під час обчислення великих наборів числових даних.

Для вирішення цієї проблеми ми використовуємо Бібліотека NumPy Python. NumPy пропонує об’єкт масиву під назвою ndarray . Вони схожі на стандартні послідовності Python, але відрізняються певними ключовими факторами.



Що таке масив NumPy?

Масив NumPy — це багатовимірна структура даних, яка є ядром наукових обчислень у Python.

Усі значення в масиві однорідні (одного типу даних).

Вони пропонують автоматичну векторизацію та трансляцію.



Вони забезпечують ефективне керування пам’яттю, ufuncs (універсальні функції), підтримують різні типи даних і є гнучкими за допомогою індексування та нарізки.

Розміри в масивах

Масиви NumPy можуть мати кілька вимірів, що дозволяє користувачам зберігати дані в багатошарових структурах.

Розміри масиву:



Ім'я приклад
0D (нульвимірний) Скаляр – один елемент
1D (одновимірний) Вектор - список цілих чисел.
2D (двовимірний) Матриця - електронна таблиця даних
3D (тривимірний) Тензор - зберігання кольорового зображення

Створити об’єкт масиву

Об’єкти масиву NumPy дозволяють нам працювати з масивами в Python. Викликається об’єкт масиву ndarray .

Функція array() бібліотеки NumPy створює ndarray.

Python3




новий рядок у python
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])>

>

>

Вихід

[1,2,3,4,5,6]>

Ми також можемо створити масив NumPy за допомогою List і Tuple.

Створіть масив NumPy зі списку

Ви можете використовувати псевдонім np, щоб створити ndarray для a список за допомогою методу array().

li = [1,2,3,4] numpyArr = np.array(li)>

або

numpyArr = np.array([1,2,3,4])>

Список передається в метод array(), який потім повертає масив з тими самими елементами.

приклад 1: У наступному прикладі показано, як ініціалізувати масив зі списку.

перетворити рядок на jsonobject java

Python3




15 із 100,00

import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)>

>

>

Вихід:

[1 2 3 4]>

Отриманий масив виглядає так само, як список, але є об’єктом NumPy.

приклад 2: Давайте візьмемо приклад, щоб перевірити, чи є numpyArr об’єктом NumPy чи ні. У цьому прикладі ми використовуємо функцію array(), щоб перетворити список на масив NumPy, а потім перевірити, чи це об’єкт NumPy чи ні.

Python3




import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> > print>(>'li ='>, li,>'and type(li) ='>,>type>(li))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))>

>

>

Вихід:

li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>

Як бачите, li є об’єктом списку, тоді як numpyArr є об’єктом масиву NumPy.

Створіть масив NumPy із кортежу

Ви можете створити ndarray з a кортеж використовуючи подібний синтаксис.

tup = (1,2,3,4) numpyArr = np.array(tup)>

або

numpyArr = np.array((1,2,3,4))>

У наступному прикладі показано, як створити масив із кортежу. Тут ми використовуємо функцію array() для перетворення кортежу в масив NumPy.

Python3


обрізка javascript



import> numpy as np> > tup>=> (>1>,>2>,>3>,>4>)> numpyArr>=> np.array(tup)> > print>(>'tup ='>, tup,>'and type(tup) ='>,>type>(tup))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))>

>

конструктори в java

>

Вихід:

tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>

Зверніть увагу, що значення numpyArr залишається незмінним для будь-якого з двох перетворень.

Масиви NumPy проти вбудованих послідовностей Python

  • На відміну від списків, масиви мають фіксований розмір, і зміна розміру масиву призведе до створення нового масиву, а вихідний масив буде видалено.
  • Усі елементи в масиві одного типу.
  • Масиви швидші, ефективніші та потребують менше синтаксису, ніж стандартні послідовності Python.

Примітка: Різні наукові та математичні пакети на основі Python використовують Numpy. Вони можуть сприймати вхідні дані як вбудовану послідовність Python, але вони, ймовірно, перетворюватимуть дані в масив NumPy для досягнення швидшої обробки. Це пояснює необхідність розуміння NumPy.

Чому масив Numpy такий швидкий?

Масиви Numpy здебільшого записуються в мова C . Будучи написаними на C, масиви зберігаються в безперервних розташуваннях пам’яті, що робить їх доступними та легшими для маніпулювання. Це означає, що ви можете досягти рівня продуктивності коду на C з легкістю написання програми на Python.

  1. Однорідні дані: Масиви зберігають елементи одного типу даних, що робить їх компактнішими та ефективнішими за списки.
  2. Фіксований тип даних: Масиви мають фіксований тип даних, що зменшує накладні витрати на пам’ять, усуваючи необхідність зберігати інформацію про тип для кожного елемента.
  3. Безперервна пам'ять: Масиви зберігають елементи в суміжних місцях пам’яті, зменшуючи фрагментацію та забезпечуючи ефективний доступ.
numpyarray

Розподіл пам'яті масиву Numpy

Якщо у вашій системі не встановлено NumPy, ви можете зробити це, виконавши ці дії. Після встановлення NumPy ви можете імпортувати його у свою програму таким чином

import numpy as np>

Примітка: Тут np є загальновживаним псевдонімом для NumPy.

Розподіл даних у масиві Numpy

У NumPy дані розміщуються в пам’яті безперервно за чітко визначеним макетом, який складається з буфера даних, форми та кроків. Це важливо для ефективного доступу до даних, векторизованих операцій і сумісності з бібліотеками низького рівня, такими як BLAS і ЛАПАК .

  1. Буфер даних: Буфер даних у NumPy — це єдиний плоский блок пам’яті, який зберігає фактичні елементи масиву, незалежно від його розмірності. Це забезпечує ефективні поелементні операції та доступ до даних.
  2. форма: Форма масиву — це кортеж цілих чисел, який представляє розміри вздовж кожної осі. Кожне ціле число відповідає розміру масиву вздовж певного виміру, який визначає кількість елементів уздовж кожної осі та є важливим для правильного індексування та зміни форми масиву.
  3. Кроки: Поступи — це кортежі цілих чисел, які визначають кількість байтів, які необхідно виконати в кожному вимірі під час переходу від одного елемента до наступного. Вони визначають відстань між елементами в пам’яті та вимірюють, скільки байтів потрібно для переходу від одного елемента до іншого в кожному вимірі.

2

Висновок

Масив NumPy у Python є дуже корисною структурою даних, яка дозволяє нам виконувати різні наукові операції з даними. Це структура даних з дуже ефективним використанням пам’яті, яка пропонує широкий спектр переваг перед іншими послідовностями Python.

У цьому підручнику ми детально пояснили масиви NumPy. Ми розглянули визначення, розмірність, чому це швидко та як розподіл даних працює в масиві. Після завершення цього підручника ви отримаєте повні поглиблені знання про масив NumPy і зможете застосувати його у своїх проектах Python.