Что такое NumPy?

NumPy расшифровывается как Numerical Python, это библиотека Python, которая позволяет выполнять числовые вычисления. Это одна из наиболее часто используемых библиотек для числовых и научных вычислений, а также основной строительный блок для таких библиотек, как Pandas, TensorFlow и Scikit-Learn. Это быстро, потому что он построен с помощью C. В отличие от списка, который имеет однородные значения данных, элементы массива Numpy имеют один тип данных (т.е. гетерогенный).

Массив NumPy имеет четыре категории измерений

1. Нульмерные массивы представляют скаляры

2. одномерные массивы представляют векторы

3. двумерные массивы представляют матрицы

4. Многомерные тензоры

Применение Numpy

1. Наука о данных

2. Искусственный интеллект/машинное обучение

3. Обработка сигналов и изображений

4. Научные и инженерные вычисления

Чтобы установить Numpy*pip install numpy*

# Array initialization using Numpy 
import numpy 
numpy_array = numpy.array([1,2,3,4,5,6])
print('Numpy_Array',numpy_array)
print('Numpy_Array',numpy_array * 2,"\n")

import numpy as np # using np as alias for numpy 
np = numpy.array([1,2,3,4,5,6])
print('Numpy_Array2',np /3)
print('Numpy_Array2',np)

форма()

Возвращает кортеж с указанием индексов и количества элементов (т.е. количества строк и столбцов)

import numpy as np
lst1 = [1,2,3,4,5,6]
list1 = np.array(lst1)
np.shape(lst1)

lst2 = [[2,4,6,8,10],[1,3,5,7,9]]
list2 = np.array(lst2)
np.shape(list2)

Категории функций Numpy

  1. Функции Numpy для создания или инициализации массива
  • массивы( )
  • глаз( )
  • те( )
  • Нули( )
  • полный( )

массивы()

Массив — это основная структура данных библиотеки Numpy. Массив Numpy представляет собой сетку значений одного типа и проиндексированных.

import numpy as np
numpy_array = np.array([1,2,3,4,5,6])
print(type(numpy))
print(numpy_array)

глаз()

Берет квадратную матрицу и инициализирует =

  • все диагональные позиции до 1
  • все недиагональные позиции в 0

Синтаксис = np.eye(строки/столбцы,dtype)

identity_matrix1 = np.eye((1,2),dtype=int)
identity_matrix2 = np.eye(2)
identity_matrix3 = np.eye(3,dtype=float)
identity_matrix4 = np.eye(5,dtype=int)
print(identity_matrix1,'n')
print(identity_matrix2,'n')
print(identity_matrix3,'n')
print(identity_matrix4,'n')

единицы()

Возвращает единицы как элемент или значение списка массивов

Синтаксис => np.ones(shape,dtype) dtype может быть либо с плавающей запятой, либо с целым числом, и по умолчанию он с плавающей запятой.

ones_array1 = np.ones((2)) # By default data type is float64 
ones_array2 = np.ones((2,3),dtype=np.int64)
ones_array3 = np.ones((2,4,2),dtype=  np.int32)
ones_array4 = np.ones((2,4,3,2),dtype=  np.int32)

print('ones_array1 = ',ones_array1) 
print('ones_array1 dataType: ',ones_array1.dtype) # ones_array1 dataType:  float64
print('ones_array1 dimension: ',ones_array1.ndim,"\n") # ones_array1 dimension:  1 

print('ones_array2 = ',ones_array2)
print('ones_array2 dataType: ',ones_array2.dtype) # ones_array2 dataType:  int64
print('ones_array2 dimension: ', ones_array2.ndim,"\n") # ones_array2 dimension:  2 

print('ones_array3 = ',ones_array3)
print('ones_array3 dataType: ',ones_array3.dtype) # ones_array3 dataType:  int32
print('ones_array3 dimension: ',ones_array3.ndim) # ones_array3 dimension:  3

print('ones_array4 = ',ones_array4) # Retturns 4 dimension of array 
print('ones_array4 dataType: ',ones_array4.dtype) # Retturns ones_array4 dataType:  int32
print('ones_array4 dimension: ',ones_array4.ndim)# ones_array4 dimension:  4

нули()

Возвращает нули в качестве элемента или значения списка массивов по заданной форме

Синтаксис => np.zeros(shape,dtype) dtype может быть либо с плавающей запятой, либо с целым числом, и по умолчанию он с плавающей запятой.

import numpy as np
zero_array1 = np.zeros((2,3))
zero_array2 = np.zeros((2))
zero_array3 = np.zeros((2,4),dtype=int)
zero_array4 = np.zeros((2,4),dtype=np.int)
print('zeros_array1  :  ',zero_array1)
print('zeros_array1 dimension: ',zero_array1.ndim)
print('zeros_array1 dataType: ',zero_array1.dtype,"\n")

print('zeros_array2 : ',zero_array2)
print('zeros_array2 dimension: ',zero_array2.ndim)
print('zeros_array2 dataType: ',zero_array2.dtype,"\n")

print('zeros_array3 : ',zero_array3)
print('zeros_array3 dimension: ',zero_array3.ndim)
print('zeros_array3 dataType: ',zero_array3.dtype,"\n")

print('zero_array4 : ',zero_array4)
print('zeros_array4 dimension: ',zero_array4.ndim)
print('zeros_array4 dataType: ',zero_array4.dtype,"\n")

полный()

Возвращает значение по умолчанию, переданное как элемент или значение списка массивов

синтаксис np.full (форма, значение по умолчанию)

full_array1 = np.full((5),56)
full_array2= np.full((5),56)
full_array3 = np.full((5),56)
full_array4 = np.full((3,5,3),56)
print('full_array1  :  ',full_array1)
print('full_array1 dimension: ',full_array1.ndim)
print('full_array1 dataType: ',full_array1.dtype,"\n")

print('full_array2 : ',full_array2)
print('full_array2 dimension: ',full_array2.ndim)
print('full_array2 dataType: ',full_array2.dtype,"\n")

print('full_array3 : ',full_array3)
print('full_array3 dimension: ',full_array3.ndim)
print('full_array3 dataType: ',full_array3.dtype,"\n")

print('full_array4 : ',full_array4)
print('full_array4 dimension: ',full_array4.ndim)
print('full_array4 dataType: ',full_array4.dtype,"\n")

2. Функции массивов с числовыми диапазонами

  • упорядочить ( )
  • LineSpace()
  • logSpace()

Они возвращают массив со значениями заданного диапазона и заданного значения по умолчанию или заданного типа данных.

упорядочить()

arange() Создает одномерный массив с равномерно заданным диапазоном чисел в течение заданного интервала или интервала по умолчанию (т.е. 1).

Синтаксис = упорядочивать (индекс начала, индекс остановки, размер шага, тип dtype)

  • StartIndex: нижняя граница.
  • StopIndex: верхняя граница
  • размер шага: приращение, значение приращения по умолчанию равно 1. Это необязательно
import numpy as np 
arr_range1 = np.arange(50) # Returns 0 to 49 integers
arr_range2 = np.arange(50, dtype=int) # Returns 0 to 49 integers
arr_range3 = np.arange(1,50, dtype=float) # Returns 1 to 49 floats
arr_range4 = np.arange(1,50,2) # Returns 1 to 49 integers incremented by 2
arr_range5 = np.arange(1,50,2, dtype=float) # Returns 1 to 49 floats incremented by 2

print('array_range1 = ',arr_range1,"\n")
print('array_range2 = ',arr_range2,"\n")
print('array_range3 = ',arr_range3,"\n")
print('array_range4 = ',arr_range4,"\n")
print('array_range5 = ',arr_range5,"\n")

строчный интервал()

Синтаксис => linespace(startIndex, stopIndex, num, endpoint, restep, dtype)

  • StartIndex: нижняя граница
  • StopIndex: верхняя граница
  • num: количество требуемых значений в массиве, это необязательно, по умолчанию 50
  • конечная точка: если включен индекс истинной остановки, иначе, если индекс ложной остановки не включен, это необязательно. Принять логическое значение (т.е. True или False)
  • retsep (т.е. размер шага): разница между значениями, если значения True видны, иначе не видны по умолчанию False, это необязательно
  • dtype: принимает тип данных float или int. Тип данных по умолчанию — float

Возвращает числа, равномерно распределенные по заданному интервалу.

linespace1_arr = np.linspace(1,50) # Returns 1 to 50 floats
linespace2_arr = np.linspace(1,50,5) # Returns 5 floats within the range 1 to 50  
linespace3_arr = np.linspace(1,50,endpoint=True)  # Returns 1 to 50 floats and includes StopIndex
linespace4_arr = np.linspace(1,50,endpoint=False) # Returns 1 to 49 floats and Does not return stopIndex(i.e 50)  
linespace5_arr = np.linspace(1,50,retstep=False)   # Returns 1 to 50 floatsand and Does not return step size
linespace6_arr = np.linspace(1,50,num=2,endpoint=True) # Returns 2 floats 1 and 50
linespace7_arr = np.linspace(1,50,num=2,retstep=True) # Returns 2 floats 1 and 50 and a step size. By default 3rd arguments(i.e a number) is reads as 'num=' value   
linespace8_arr = np.linspace(1,50,2,endpoint=True,retstep=True,dtype=int) # Returns 1 to 50 Integers, including StopIndex and step size
print('linespace1_array = ',linespace1_arr,"\n")
print('linespace2_array = ',linespace2_arr,"\n")
print('linespace3_array = ',linespace3_arr,"\n")
print('linespace4_array = ',linespace4_arr,"\n")
print('linespace5_array = ',linespace5_arr,"\n")
print('linespace6_array = ',linespace6_arr,"\n")
print('linespace7_array = ',linespace7_arr,"\n")
print('linespace8_array = ',linespace8_arr,"\n")

logspace()

Возвращает числа, равномерно распределенные по логарифмической шкале.

Синтаксис => logspace(startIndex, stopIndex, num, endpoint, base, dtype)

  • StartIndex: нижняя граница
  • StopIndex: верхняя граница
  • num: количество обязательных значений в массиве, необязательно, по умолчанию 50
  • конечная точка: если включен индекс истинной остановки, иначе, если индекс ложной остановки не включен, это необязательно. Принять логическое значение (т.е. True или False)
  • база: база значения журнала, по умолчанию используется база 10. это необязательно.
  • dtype: принимает тип данных float или int
logspace1_arr = np.logspace(1,2) 
logspace2_arr = np.logspace(1,5,num=5,base=10) 
logspace3_arr = np.logspace(1,5,num=2,endpoint=True)  
logspace4_arr = np.logspace(1,5,num=2,endpoint=False) 
logspace5_arr = np.logspace(1,5,num=2,base=2)   
logspace6_arr = np.logspace(1,50,num=2,endpoint=True) 
logspace7_arr = np.logspace(1,2,2,base=16) 
logspace8_arr = np.logspace(1,2,2,endpoint=True,base=16,dtype=int) 

print('logspace1_array = ',logspace1_arr,"\n")# Return 50 floats spaced evenly on a log scale of base 10.
print('logspace2_array = ',logspace2_arr,"\n")# Return 5 floats spaced evenly on a log scale of base 10.
print('logspace3_array = ',logspace3_arr,"\n")# Returns 1 to 50 floats and includes StopIndex
print('logspace4_array = ',logspace4_arr,"\n")# Returns 1 to 49 floats and Does not return stopIndex(i.e 50)
print('logspace5_array = ',logspace5_arr,"\n")# Returns 1 to 50 floatsand and Does not return step size
print('logspace6_array = ',logspace6_arr,"\n")# Returns 2 floats 1 and 50
print('logspace7_array = ',logspace7_arr,"\n")# Returns 2 floats 1 and 50 and. By default 3rd arguments(i.e a number) is reads as 'num=' value
print('logspace8_array = ',logspace8_arr,"\n")# Returns 1 to 50 Integers, including StopIndex and step size

3. Функции Numpy для преобразования

Массивы с существующими типами данных

  • массив( )
  • из буфера()
  • изменить форму ( )

массив( )

Функция asarray() используется, когда мы хотим преобразовать ввод в массив. Входными данными могут быть списки, списки кортежей, кортежи, кортежи кортежей, кортежи списков и массивы.

Синтаксис = asarray(input,dtype,order) порядок: основной ряд (**C**) или основной столбец (**F**)

array = [[10,20,30,40],[50,60,70,80]]
as_array = np.asarray(array,dtype=float,order='F')
print(as_array)
print(type(as_array)) 

из буфера()

frombuffer создаст массив с заданным типом данных заданной длины из заданной позиции

Синтаксис =frombuffer(buffer, dtype, count, offset)

count используется для ограничения длины возвращаемого массива count или конечный индекс, смещение или начальный индекс

buff = np.frombuffer(b'Arewa Data  Science Academy',dtype='S1',count=-1,offset=5)
print(buff)

4. Агрегированные функции Numpy
1. sum()
2. prod()
3. mean()
4. median()
5. std ()
6. var()
7. amin()
8. amax()
9. all()
10. any()

сумма()

Функция sum() возвращает сумму всех элементов массива.

import numpy as np
arr11 = np.array([1,2,3,4,5,6,7,8])
arr1 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
print('arr11 : ',arr11.sum()) # Return the sum of all elements 
print('arr1 : ',arr1.sum()) # Return the sum of all elements

print('arr1-> axis=0 : ',np.sum(arr1, axis=0)) # Return an array list summing the corresponding columns
print('arr1-> axis=1 : ',np.sum(arr1,axis=1)) # Return an array list summing the rows

продукт()

Функция prod() возвращает произведение всех элементов заданного массива.

Синтаксис = numpy.prod(array_list,axis=None,dtype=None,out=None, keepdims=‹нет значения›,*,где=‹нет значения›)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
prod1 = np.prod(arr1)
prod2 = np.prod(arr1,axis=0)

print(prod1)
print(prod2,'\n')

# 2D Array
arr2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
prod4 = np.prod(arr2)
prod5 = np.prod(arr2,axis=0) # Return an array list product of the corresponding columns
prod6 = np.prod(arr2,axis=1) # Return an array list  product of each rows

print(prod4)
print(prod5)
print(prod6,'\n')

arr3 =np.prod(np.arange(1,11))
print(arr3)

arr4 = np.array([np.nan, 3, 4])
prod_result = np.prod(arr4, where=[False,True,True])
print(prod_result)

среднее()

Функция mean() возвращает среднее значение элементов массива.

Синтаксис = numpy.mean(array_list,axis=None,dtype=None,out=None, keepdims=‹нет значения›,*,где=‹нет значения›)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5,6,7,8])
average1 = np.mean(arr1)


print(average1,'\n')

# 2D Array
arr2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
average4 = np.mean(arr2)
average5 = np.mean(arr2,axis=0)

print(average4)
print(average5,'\n')

медиана()

Функция median() возвращает средний элемент отсортированного массива. Если 2 элемента связаны посередине, мы суммируем 2 элемента и делим на 2.

Синтаксис = numpy.median(array_list,axis=None,dtype=None)

import numpy as np
arr1 = np.array([1,2,3,4,5,6,7,8])
middle1 = np.median(arr1)

print(middle1,'\n')

arr2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
middle3 = np.median(arr2)
middle4 = np.median(arr2,axis=0)
print(middle3)
print(middle4,'\n')

var()

Дисперсия измеряет разброс распределения. шаги для ручного расчета номеров отклонений

1. вычислить среднее всех чисел

2. вычислить квадратную разницу каждого числа, вычитая его из среднего и возведя в квадрат результат

3. вычислить среднее значение этих квадратов разницы

Синтаксис =numpy.var(array_list,axis=None,dtype=None,out=None,ddof=0,keepdims=‹нет значения›,*,где=‹нет значения›)

import numpy as np
arr = np.array([1,2,3,4,5])
var_result = np.var(arr)
print(var_result)

стандартный()

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

Синтаксис = numpy.std(array_list,axis=None,dtype=None,out=None,ddof=0,keepdims=‹нет значения›,*,где=‹нет значения›)

import numpy as np
arr = np.array([100,200,300,400,500])
std_result = np.std(arr)
print(round(std_result,4))

амин()

Функция amin() возвращает минимальный элемент массива

Синтаксис = numpy.amin(array_list,axis=None,dtype=None,out=None,keepdims=‹нет значения›, initial=‹нет значения›, где=‹нет значения›)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
minimum1 = np.amin(arr1)

print(minimum1,'\n')

# 2D Array
arr2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
minimum4 = np.amin(arr2)
minimum5 = np.amin(arr2,axis=0) # Return an array list product of the corresponding columns
minimum6 = np.amin(arr2,axis=1) # Return an array list  product of each rows

print(minimum4)
print(minimum5)
print(minimum6,'\n')

arr3 =np.amin(np.arange(1,11))
print(arr3)

arr4 = np.array([np.nan, 2, 3, 4])
min_result = np.amin(arr4, initial=4 ,where=[False,True,True,True])
print(int(min_result))

амакс()

Функция amax() возвращает максимальный элемент массива

Синтаксис **-›** numpy.amax(array_list,axis=None,dtype=None,out=None,keepdims=‹нет значения›, initial=‹нет значения›, где=‹нет ценить>)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
maximum1 = np.amax(arr1)

print(maximum1,'\n')

# 2D Array
arr2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
maximum4 = np.amax(arr2)
maximum5 = np.amax(arr2,axis=0) # Return an array list product of the corresponding columns
maximum6 = np.amax(arr2,axis=1) # Return an array list  product of each rows

print(maximum4)
print(maximum5)
print(maximum6,'\n')

arr3 =np.max(np.arange(1,11))
print(arr3)

arr4 = np.array([np.nan, 2, 3, 4])
max_result = np.amax(arr4, initial=4 ,where=[False,True,True,True])
print(int(max_result))

все()

Функция all() возвращает True, если все элементы массива отличны от нуля, и False, если какой-либо элемент равен нулю.

Синтаксис = numpy.all(array_list,axis=None,dtype=None,out=None,keepdims=‹нет значения›, * ,где=‹нет значения›)

import numpy as np
# 1D Array
arr1 = np.array([0,1,2,3,4,5])
all1 = np.all(arr1)

print(all1,'\n')

# 2D Array
arr2 = np.array([[0,1,2,3,4,5],[6,7,8,9,10,11]])
all4 = np.all(arr2)
all5 = np.all(arr2,axis=0) # Return an array list product of the corresponding columns
all6 = np.all(arr2,axis=1) # Return an array list  product of each rows

print(all4)
print(all5)
print(all6,'\n')

arr3 =np.all(np.arange(1,11))
print(arr3)

любой( )

Функция any() возвращает True, если какой-либо элемент массива отличен от нуля, и False, если какой-либо элемент равен нулю.

Синтаксис = numpy.all(array_list,axis=None,dtype=None,out=None,keepdims=‹нет значения›, * ,где=‹нет значения›)

import numpy as np
# 1D Array
arr1 = np.array([0,1,2,3,4,5])
any1 = np.any(arr1)
print(any1,'\n')

arr = np.array([0,0,0])
any2 = np.any(arr)
print(any2,'\n')

# 2D Array
arr2 = np.array([[0,1,2,3,4,5],[6,7,8,9,10,11]])
any4 = np.any(arr2)
any5 = np.any(arr2,axis=0) # Return an array list boolean of the corresponding columns
any6 = np.any(arr2,axis=1) # Return an array list boolean of each rows

print(any4)
print(any5)
print(any6,'\n')

arr3 =np.any(np.zeros((1,11),dtype=int))
print(arr3)

5. функции, используемые для работы с массивами

1. изменить форму ( )

2. транспонировать()

3. сортировать( )

4. сгладить()

5. распутать ( )

изменить форму()

форма массива хранит количество измерений или осей и количество элементов в каждом измерении. форма возвращает кортеж

Функция reshape() изменяет форму массива. Он не изменяет и не заменяет какой-либо элемент, изменяется только позиция элемента.

Синтаксис = numpy.reshape(array_list,newshape, order='C')

import numpy as np
# 1D Array
arr1 = np.array([0,1,2,3,4,5])
reshape1 = np.reshape(arr1,(2,3))

print(reshape1,'\n')

# 2D Array
arr2 = np.array([[0,1,2,3,4,5],[6,7,8,9,10,11]])
reshape2 = np.reshape(arr2,(3,4))

print(reshape2,'\n')

arr3 = np.arange(1,11)
reshape3 = np.reshape(arr3,(5,2))

print(reshape3)

транспонировать ( )

Функция transpose() используется для реверсирования осей массива.

Синтаксис = numpy.transpose(array_list, axes=None)

import numpy as np
# 1D Array
arr1 = np.array([0,1,2,3,4,5])
arr_transpose1 = np.transpose(arr1)
print(arr_transpose1,'\n')

# 2D Array
arr2 = np.array([[0,1,2,3,4,5],[6,7,8,9,10,11]])
arr_transpose2 = np.transpose(arr2)
print(arr_transpose2,'\n')

arr3 = np.arange(1,11)
reshape = np.reshape(arr3,(5,2))
arr_transpose3 = np.transpose(reshape)
print(arr_transpose3)

сортировать()

Функция sort() используется для сортировки массива

Синтаксис = numpy.sort(array_list, axis=1, kind=None, order=None)

import numpy as np
# 1D Array
arr1 = np.array([0,3,4,1,2,5])
sorted_arr1 = np.sort(arr1)

print(sorted_arr1,'\n')

# 2D Array
arr2 = np.array([[0,1,2,10,11],[6,7,8,9,3,4,5]], dtype=object)
sorted_arr2 = np.sort(arr2)

print(sorted_arr2,'\n')

dtype =[("smartPhone","S10"),
        ("year_of_production",int),
        ("price",float)
]

product_price = [
    ("Tecno",100.5,2019),
    ("Gionee",120.5,2018),
    ("infinix",120.0,2010)
]

product_info = np.array(product_price,dtype=dtype)
result = np.sort(product_info,order=["year_of_production","price"])
print(result)

сгладить()

Функция flatten() является методом ndarray. Используется для сворачивания массива в одномерный массив.

Синтаксис = ndarray.flatten(axis=1, kind=None, order=None)

import numpy as np
# 1D Array
arr1 = np.array([0,3,4,1,2,5])
flatten_arr1 = arr1.flatten()

print(flatten_arr1,'\n')

# 2D Array
arr2 = np.array([[0,1,2],[6,7,8]])
flatten_arr2 = arr2.flatten(order='C') 
flatten_arr3 = arr2.flatten(order='F')

print(flatten_arr2) # Return a flatten array list of each rows both rows
print(flatten_arr3,'\n') # Return a flatten array list of each corresponding colums

распутывать()

Функция ravel() принимает массив и возвращает одномерный массив

Синтаксис = numpy.ravel(array_list, axis=1, kind=None, order=None)

import numpy as np
# 1D Array
arr1 = np.array([0,3,4,1,2,5])
raveled_arr1 = np.ravel(arr1)
print(raveled_arr1,'\n')

# 2D Array
arr2 = np.array([[0,1,2],[6,7,8]])
raveled_arr2 = np.ravel(arr2,order='C') 
raveled_arr3 = np.ravel(arr2,order='F')

print(raveled_arr2) # Return a raveled array list of each rows both rows
print(raveled_arr3,'\n') # Return a raveled array list of each corresponding colums

Функции массива, используемые для арифметических операций

1. добавить()

2. вычесть ( )

3. умножить ( )

4. разделить( )

добавить()

Оператор «-» или функция add() используется для добавления двух или более массивов одинакового размера.

Синтаксис = numpy.add(массив1, массив2 )

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
sum1 = arr1 + arr2
sum2 = np.add(arr1,arr2)
print(sum1)
print(sum2,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
sum3 = arr3 + arr4 # Return array list of sum  each rows both rows
sum4 = np.add(arr4,arr3)
print(sum3) # Return an array lists of sum each corresponding colums
print(sum4,'\n')

вычитание()

Оператор ‘-’ или функция subtract() используется для вычитания двух или более массивов одинакового размера.

Синтаксис = numpy.subtract(массив1, массив2)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
sub1 = arr2 - arr1
sub2 = np.subtract(arr1,arr2)
print(sub1)
print(sub2,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
sub3 = arr3 - arr4 # Return array list of sum  each rows both rows
sub4 = np.subtract(arr4,arr3)
print(sub3) # Return an array lists of sum each corresponding colums
print(sub4,'\n')

умножить()

Оператор ‘*’ или функцияmulti() возвращает произведение двух массивов одинакового размера.

Синтаксис = numpy.multiply(массив1, массив2)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
product1 = arr2 * arr1
product2 = np.multiply(arr1,arr2)
print(product1)
print(product2,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
product3 = arr3 * arr4 # Return array list of product each rows both rows
product4 = np.multiply(arr4,arr3)
print(product3) # Return an array lists of product each corresponding colums
print(product4,'\n') 

разделить()

Оператор ‘/’ или функция Division() возвращает частное двух массивов одинакового размера, выполняя поэлементное деление.

Синтаксис = numpy.divide(массив1, массив2 )

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
div1 = arr2 * arr1
div2 = np.multiply(arr1,arr2)
print(div1)
print(div2,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
div3 = arr3 * arr4 # Return array list of qoutient each rows both rows
div4 = np.multiply(arr4,arr3)
print(div3) # Return an array lists of qoutient each corresponding colums
print(div4,'\n') 

Массив Numpy для объединения и разделения

1. объединить ()

2. стек ()

3. противстек()

4. стек()

5. разделить()

объединить()

Функция concatenate() объединяет два или более массивов в один массив

Синтаксис = numpy.concatenate((array_list1,array_list2,array_list3,…),axis=0)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
concateante = np.concatenate((arr1,arr2))
print(concateante,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
concateante2 = np.concatenate((arr3,arr4))
print(concateante2,'\n') 

стек()

Функция stack() объединяет 1D-массивы в один 2D-массив и объединяет 2D-массивы в один 3D-массив. Массив должен быть одинаковой формы

Синтаксис = numpy.stack((array_list1,array_list2,array_list3,…),axis=0)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
stack = np.stack((arr1,arr2))
print(stack,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
stack2 = np.stack((arr3,arr4))
print(stack2,'\n')

противстек()

Функция vstack() объединяет два массива или массива в один массив по вертикали (построчно). Массив должен быть одинаковой формы

Синтаксис => numpy.vstack((массив_список1,массив_список2,массив_список3,…),ось=0)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
vstack = np.vstack((arr1,arr2))
print(vstack,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
vstack2 = np.vstack((arr3,arr4))
print(vstack2,'\n') 

hstack()

Функция hstack() объединяет два массива или массива в один массив по горизонтали (по столбцам). Массив должен быть одинаковой формы

Синтаксис = np.hstack((array_list1,array_list2,array_list3,…),axis=0)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5])
arr2 = np.array([6,7,8,9,10])
hstack = np.hstack((arr1,arr2))
print(hstack,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
arr4 = np.array([[3,4,5],[9,10,11]])
hstack2 = np.hstack((arr3,arr4))
print(hstack2,'\n')

разделить()

Функции split() разбивают массив на несколько представлений подмассивов.

Синтаксис = numpy.split(aarray_list1,section_or_indices,axis=0)

import numpy as np
# 1D Array
arr1 = np.array([1,2,3,4,5,6])
split = np.split(arr1,2)
split2 = np.split(arr1,3)
print(split,'\n')
print(split2,'\n')

# 2D Array
arr3 = np.array([[0,1,2],[6,7,8]])
split3 = np.split(arr3,1)
split4 = np.split(arr3,2)
print(split3)
print(split4,'\n') 

Трансляция

Широковещательная рассылка предполагает использование любой цифры для выполнения арифметической операции над элементами массива.

arr1 = np.array([1,2,3,4,5])
add_broadcast = arr1 + 2 
sub_broadcast = arr1 - 2
multi_broadcast = arr1 * 2
div_broadcast = arr1 / 2
print(add_broadcast)
print(sub_broadcast)
print(multi_broadcast)
print(div_broadcast)

# 2D Array
arr2  = np.array([[0,1,2],[6,7,8]])
add2_broadcast = arr2 + 2 
sub2_broadcast = arr2 - 2
multi2_broadcast = arr2 * 2
div2_broadcast = arr2 / 2
print(add2_broadcast)
print(sub2_broadcast)
print(multi2_broadcast)
print(div2_broadcast)

Индексирование и нарезка массива

1. индексирование

2. Нарезка

3. фановое индексирование

4. Логическое индексирование

Индексирование

мы используем квадратную скобку [] для индексации элементов. индекс начинается с нуля (0) и заканчивается на (len (array_list) — 1) или -1

import numpy as np
numpy_index1D = np.array([1,2,3,4,5,6,7,8,9,10])
print(numpy_index1D[0]) # Returns 1st elements or data value
print(numpy_index1D[1]) # Returns second element or data value
print(numpy_index1D[-1]) # Returns last element or data value
print(numpy_index1D.ndim,"\n") # Returns dimension

numpy_index2D = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
print(numpy_index2D[0]) # Returns first row [1,2,3,4,5]
print(numpy_index2D[-1]) # Returns last row [11,12,13,14,15]
print(numpy_index2D[1,1])# Returns second row and second column element 7
print(numpy_index2D.ndim,"\n") # Returns dimension

numpy_index3D = np.array([[[1,2,3,4,5],[6,7,8,9,10]],[[11,12,13,14,15],[16,17,18,19,20]]])
print(numpy_index3D[0])  # Returns first row of 3rd dimension [[1,2,3,4,5],[6,7,8,9,10]]
print(numpy_index3D[1])  # Returns second row of 3rd dimension [[11,12,13,14,15],[16,17,18,19,20]]
print(numpy_index3D[-1]) # Returns last row of 3rd dimension [[11,12,13,14,15],[16,17,18,19,20]]
print(numpy_index3D[1,1])# Returns second row of 3rd dimension [16,17,18,19,20]]
print(numpy_index3D.ndim,"\n") # Returns Dimension

***Разрез***

нарезка — это процесс извлечения элементов из массива numpy с использованием диапазона позиций индекса.

1. Используйте array_list[a:b:c] для нарезки одномерного массива, где a,b — это индексы Start, Stop (исключительно) и c в качестве приращения.

2. Используйте array_list[a:b:c, d,e,f, …] для нарезки многомерного массива.

3. Используйте array_list[:] или array_list[0:-1] для выбора всех элементов на заданной оси.

4. Используйте array_list[:b] для выбора всех элементов, начиная с индекса 0 и заканчивая индексом b.

5. Используйте array_list[a:] для выбора всех элементов, начиная с индекса до последнего индекса.

import numpy as np 
array_list = np.arange(1,11)
print('array_list = ',array_list)
print('array_list[3:6] = ',array_list[3:6])
print('array_list[1:] = ',array_list[1:])
print('array_list[:] = ',array_list[:])
print('array_list[:5] = ',array_list[:5])
print('array_list[7:-1] = ',array_list[7:-1])
print('array_list[0:6:3] = ',array_list[0:6:3])
print('array_list[::-1] = ',array_list[::-1])
print('array_list datatype : ',array_list.ndim,"\n")

numpy_slice2D = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
print('numpy_slice2D[0] = ',numpy_slice2D[0]) 
print('numpy_slice2D[0:2] = ',numpy_slice2D[0:2]) 
print('numpy_slice2D[1:2] = ',numpy_slice2D[1:2]) 
print('numpy_slice2D[0] = ',numpy_slice2D[:]) 
print('numpy_slice2D[:, 1] = ',numpy_slice2D[:, 1]) 
print('numpy_slice2D[0:2, :3 ] = ',numpy_slice2D[0:2, :3 ]) 
print('numpy_slice2D[:,:] = ',numpy_slice2D[:, :]) # Returns [[1 2 3] [6 7 8]]
print(numpy_slice2D.ndim,"\n","\n") # Returns dimension

Функция индексации

Fancing Indexing — это процесс передачи массива индексов для одновременного доступа к нескольким элементам массива.

import numpy as np
arr = np.arange(1,11)
print(arr)

arr_list = np.array([1,2])
print(arr[arr_list])

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

С логическим индексированием Numpy использует массив логических значений для доступа к элементам. Будет возвращен только индекс, который имеет значение True.

import numpy as np
arr1 = np.arange(1,5)
arr2 = np.array([True,False,True,False])
arr3 = arr1[arr2]
print("arr1 : ",arr1)
print("arr2 : ",arr2)
print("arr3 : ",arr3)

arr11 = np.arange(1,9)
arr22 = arr11 <= 5
arr33 = arr11 == 4
arr44 = arr11 > 5

arr55 = arr11[arr22]
arr66 = arr11[arr33]
arr77 = arr11[arr44]
print("arr11 : ",arr11)
print("arr22 : ",arr22)
print("arr33 : ",arr33)
print("arr44 : ",arr44,'\n')

print("arr55 : ",arr55)
print("arr66 : ",arr66)
print("arr33 : ",arr77,'\n')

копировать()

Когда массив срезается, возвращаемый подмассив является представлением исходного массива. Если в подмассив были внесены какие-либо обновления, они отражаются обратно в исходный массив. Но чтобы избежать отражения, мы воспользуемся функцией copy().

import numpy as np
#  the View Original concept
arr1 = np.array([[1,2,3,4,5],[6,7,8,9,10]])
arr2 = arr1[:,:3]
arr2[1,1] = 4

print(arr2)
print(arr3)
print(arr1,'\n')


# copy( ) concept
arr11 = np.array([[1,2,3,4],[5,6,7,8]])
arr22 = arr1[:,:3].copy()
arr22[1,1] = 4

print(arr11)
print(arr22)