Содержание

  • Что такое NumPy?
  • Зачем использовать NumPy?
  • импортировать пакет NumPy
  • NumPy ndarrays
  • Вещание
  • Статистическиефункции
  • Встроенные функции
  • Ранг 1
  • Ранг 2
  • Нарезка, индексирование и логические операции

Что такое NumPy?

NumPy — это основной пакет для научных вычислений в Python. Это библиотека Python, которая предоставляет объект многомерного массива, различные производные объекты.

Зачем использовать NumPy?

  • Используется для научных вычислений в Python.
  • Построен на основе языка программирования C.
  • Использует многомерные массивы.

Импорт пакетов

Чтобы начать использовать библиотеку numpy, мы должны сначала импортировать необходимый пакет в проект. Это можно сделать, написав приведенную ниже строку кода.

import numpy as np

Он будет импортировать библиотеку numpy и ссылаться на нее как «np», это просто общее соглашение, используемое для вызова любой функции numpy.

Массивы NumPy (ndarrays)

«ndarrays» создает N-мерный массив, в котором каждый элемент массива может быть определен изначально или может быть вычислен на дополнительных этапах анализа.

Массивы в python можно создавать двумя распространенными способами. Один из них использует стандартное определение списка или функцию Numpy ndarrays. Некоторые могут спросить, почему мы используем сложные ndarrays вместо обычного списка. Ну, вы заметите, что по мере увеличения размера массива:

Numpy работает примерно в 30 раз быстрее, чем Python List.

Поскольку массив Numpy плотно упакован в память из-за своего однородного типа, он также быстрее освобождает память.



Общие встроенные функции ndarray

  • ndarray.ndim: Нет. размеров/рейтинга.
  • ndarray.shape: размер каждого измерения.
  • ndarray.dtype:тип элементов массива.
  • ndarray.size:количество элементов в массиве.
  • numpy.zeros:возвращает новый массив заданной формы и типа, заполненный нулями. Пример: массив 3 x 4.
np.zeros((3,4))

  • numpy.ones:возвращает новый массив заданной формы и типа, заполненный единицами. Пример: массив 3 x 4.
np.ones((3,4))

  • numpy.full:Возвращает новый массив заданной формы и типа, заполненный fill_value. Пример: массив 2 x 3 и ( 4) — это fill_value в приведенном ниже случае.
np.full((2, 3), 4)

  • numpy.eye:возвращает двумерный массив с единицами по диагонали и нулями в других местах. Пример: массив 4 x 4
np.eye(4)

  • numpy.diag:извлекает диагональ или создает диагональный массив.

Пример 1: (Построить диагональный массив):

np.diag([10, 20, 30, 40])

Это создаст массив 4 x 4 с 10, 20, 30, 40 в диагональных элементах и ​​нулями везде.

Пример 2: (Извлечь диагональный массив):

y = np.arange(25).reshape(5, 5)

  • numpy.arange:возврат равномерно распределенных значений в пределах заданного интервала.

Пример 1: np.arange(stop) → «stop» до, но не включать

np.arange(10)

Пример 2: np.arange(start, stop) → «stop» до, но не включено.

np.arange(2, 9)

Пример 3: np.arange(start, stop, step) → «stop» равно, но не включено.

np.arange(2, 12, 3)

  • numpy.linspace:возврат чисел, расположенных через равные промежутки в течение указанного интервала.

Пример 1: включен np.linsapce(start, stop, step) → «stop».

np.linspace(0, 25, 10)

Пример 2: np.linsapce(start, stop, step, endpoint = False) → «stop» включает

np.linspace(0, 25, 10, endpoint = False)

  • numpy.reshape:придает новую форму массиву без изменения его данных.

Пример 1: np.reshape(строки, столбцы)

np.arange(6)
np.reshape(2, 3)                  

  • numpy.random.random:возвратить случайные числа с плавающей запятой в полуоткрытом интервале [0,0, 1,0].

Пример: обратите внимание, что вывод может отличаться для вас из-за функции random.

np.random.random((3, 3))

  • numpy.random.randint:возвращает случайные целые числа от младшего (включительно) до старшего (исключая).

Пример: обратите внимание, что вывод может быть другим для вас из-за функции randint.

np.random.randint(4, 15, size=(3,2))

Доступ и редактирование ndarrays 1-го ранга

x = np.arange(6)
x[0] = 20
x[3] = -10
x[-1] = 9

Доступ к ndarrays ранга 2

y = np.array([[1,2,3],[4,5,6],[7,8,9]])

Редактирование ndarrays ранга 2

y = np.array([[1,2,3],[4,5,6],[7,8,9]])
y[1,1] = 20
y[2,0] = 30
y[2,2] = 77

Удаление элементов из ndarrays ранга 1

x = np.arange(5)
x = np.delete(x, [0,4])

Удаление элементов из ndarrays ранга 2

y = np.array([[1,2,3],[4,5,6],[7,8,9]])
y = np.delete(y, 0, axis = 0)  # Zero for rows

y = np.delete(y, [0, 2], axis = 1)  # One for columns

Добавить элементы в ndarrays ранга 1

x = np.arange(6)
x = np.append(x, 6)

x = np.append(x, [7, 8])

Добавить элементы в ndarrays ранга 2

y = np.array([[1,2,3],[4,5,6],[7,8,9]])
y = np.append(y, [[10, 11, 12]], axis=0) # Zero for rows

y = np.append(y, [[10], [11], [12]], axis=1) # One for columns

Вставьте элементы в ndarrays ранга 1

x = np.arange(6)
x = np.insert(x, 2, [30, 40])

Вставьте элементы в ndarrays ранга 2

y = np.array([[1,2,3],[4,5,6],[7,8,9]])
y = np.insert(y, 1, [40, 50, 60], axis=0) # Zero for Rows

y = np.insert(y, 1, 6, axis=1) # One for Coulmns

numpy.vstack

x = np.array([1,2])
y = np.array([[3,4],[5,6]])           
z = np.vstack( ( x, y ) )

numpy.hstack

x = np.array([1,2])
y = np.array([[3,4],[5,6]])           
w = np.hstack((y,x.reshape(2,1)))

Нарезка ndarray 2-го ранга

y = np.arange(20).reshape(4, 5)
print(y[1:4, 2:5])

print(y[1:, 2:4])

print(y[:3, 2:5])

print(y[2, :])

print(y[:, 2])

print(y[:, 2:3])

Нарезка и редактирование ndarray 2 ранга

y = np.arange(20).reshape(4, 5)
v = y[1:4, 2:5]
v[2, 2] = 55

numpy.ndarray.copy

Редактирование нарезанных элементов ndarray отразится на исходном ndarray.ndarray.copy, с другой стороны, вернет полностью независимую копию массива.

y = np.arange(20).reshape(4, 5)
w = np.copy(y[1:4,2:5])  #function
w = y[1:4,2:5].copy() #method
w[2,2] = 55

Выбор индексов

Будет создан массив 1D, который будет использоваться в качестве индексов для выбора элементов из ndarrays.

indices = np.array([1, 3])
y = np.arange(20).reshape(4, 5)
z = y[indices , :]
w = y[ : , indices]

numpy.unique

Найдите уникальные элементы массива.

y = np.array([[1,2,3],[5,2,8],[1,2,3]])
w = np.unique(y)
print(w)

Булево индексирование

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

y = np.arange(25).reshape(5, 5)
print("y[y > 10] = {}".format(y[y > 10]))
print("y[y <= 7] = {}".format(y[y <= 7]))
print("y[(y > 10) & (y < 17)] = {}".format(y[(y > 10) & (y < 17)]))

Логическое индексирование также используется для присвоения значений элементам массива.

y = np.arange(25).reshape(5, 5)
y[(y > 10) & (y < 17)] = -1
print(y)

Булевы операции

Логические операции, используемые для сравнения с массивами с точки зрения следующего:

x = np.array([1, 2, 3, 4, 5])
y = np.array([6, 7, 2, 8, 4])
  • numpy.intersect1d:найти пересечение двух массивов.

  • numpy.setdiff1d(x, y):найти разницу между двумя массивами.

мы могли бы найти элементы в (x), которых нет в (y)

или мы могли бы сделать это наоборот элементы в (y), которых нет в (x)

  • numpy.union1d:найти объединение двух массивов.

  • numpy.ndarray.sort:сортировка массива на месте или не на месте.
x = np.random.randint(1, 11, size=(10,))
np.sort(x)

x.sort()

x = np.random.randint(1, 11, size=(5, 5))
np.sort(x, axis = 0)     # Sort by Column

np.sort(x, axis = 1)     # Sort by Row

Поэлементная арифметика ndarrays ранга 1

x = np.array([1,2,3,4])    
y = np.array([1.5, 2.5, 3.5, 4.5])

Поэлементная арифметика ndarrays ранга 2

x = np.array([1,2,3,4]).reshape(2, 2)
y = np.array([1.5, 2.5, 3.5, 4.5]).reshape(2, 2)

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

Вещание на ndarray 1 и 2 ранга

x = np.array([1,2,3]) 
y = np.array([[1,2,3],[4,5,6],[7,8,9]])

y = np.array([[1,2,3],[4,5,6],[7,8,9]])
z = np.array([1,2,3]).reshape(3,1)

Статистическиефункции

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