Numpy filter array

Python NumPy

NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution

NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations

Добавление нового массива

Перед процессом создание нового массива, необходимо выполнить некоторые действия. Для начала, стоит произвести импорт библиотеки, которая отвечает за работу с подобными объектами. Чтобы выполнить это действие, нужно добавить в файл программы следующую строку: from array import *.

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

Для создания нового массива данных используется такая функция, как «array». Ниже представлен пример того, как заполняется массив с помощью перечисленных действий:

from array import *data = array(‘i’, )

Функция «array» способна принимать два аргумента, одним из них является вид массива, который создается, другим – исходный перечень значений массива. В этом примере i является числом, размер которого составляет 2 б. Стоит отметить, что можно использовать не только этот примитив, но и другие – c, f и т. д.

Действия для добавления нового элемента

Для того, чтобы в массиве появился новый элемент, необходимо воспользоваться таким методом, как «insert». Это делается с помощью ввода в созданный ранее объект двух значений, являющихся аргументами. Цифра 3 представляет собой не что иное, как само значение, а 4 указывает на место в массиве, где будет располагаться элемент, т. е. его индекс.

Действия для удаления нового элемента

В рассматриваемом языке программирования избавиться от лишних элементов можно посредством такого метода, как «pop». Данный метод имеет аргумент (3) и может быть вызван через объект, который создавался ранее, т. е. способом, аналогичным добавлению нового элемента.

data.pop(3)

После того, как произошло удаление лишнего, в массиве происходит сдвиг его содержимого таким образом, чтобы число свободных ячеек памяти совпало с текущим количеством элементов.

Проверка

Зачастую возникает необходимость проверки данных при работе с любой программой, которая проводится путем вывода на экран. Эта операция может быть совершена с помощью такой команды, как «print». Аргументом для этой функции является элемент массива, созданного ранее.

В нижеприведенном примере видно, что обработка массива происходит с помощью цикла «for», в котором любой элемент массива идентификатором i для передачи в «print».

Тригонометрические функции

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

Название

Описание

np.sin(x)

Вычисление
синуса угла x (в радианах);
xможет быть
числом, списком, массивом (это правило распространяется на все функции этой
таблицы).

np.cos(x)

Вычисление
косинуса угла(ов) x.

np.tan(x)

Вычисление
тангенса угла(ов) x.

np.arccos(x)

Арккосинус
угла(ов) x.

np.arcsin(x)

Арксинус
угла(ов) x.

np.arctan(x)

Арктангенс
угла(ов) x.

Их использование
также вполне очевидно. На входе они могут принимать массив, список или число.
Если это угол, то он представляется в радианах. Например:

a = np.linspace(, np.pi, 10)
res1 = np.sin(a) # возвращает массив синусов углов
np.sin(np.pi/3)
np.cos(, 1.57, 3.17)
res2 = np.cos(a) # возвращает массив косинусов углов
np.arcsin(res1) # возвращает арксинусы от значений res1

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

Логическое (Boolean) индексирование

Рассмотрим следующий пример: пусть есть массив с данными (случайными)
и массив, содержащий имена с повторениями:

In : names = np.array()

In : data = np.random.randn(7, 4)

In : names
Out: array(, dtype='<U4')

In : data
Out: 
array(,
       ,
       ,
       ,
       ,
       ,
       ])

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

In : names == 'Bob'
Out: array()

Этот булев массив может использоваться при индексировании массива:

In : data
Out: 
array(,
       ])

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

In : data
Out: 
array(,
       ])

In : data
Out: array()

Чтобы выбрать все, кроме , можно использовать или
обращение условия :

In : names != 'Bob'
Out: array()

In : data
Out: 
array(,
       ,
       ,
       ,
       ])

Оператор может быть полезен при инвертировании общего условия:

In : cond = names == 'Bob'

In : data
Out: 
array(,
       ,
       ,
       ,
       ])

Выбрав два из трех имен для объединения нескольких логических условий,
можно использовать логические арифметические операторы, такие как (и) и
(или):

In : mask = (names == 'Bob') | (names == 'Will')

In : mask
Out: array()

In : data
Out: 
array(,
       ,
       ,
       ])

Выбор данных из массива с помощью логического индексирования всегда
создает копию данных, даже если возвращаемый массив не изменяется.

Предупреждение

Ключевые слова Python и не работают с булевыми массивами.
Используйте (и) и (или).

Присвоение значений массивам работает обычным образом. Замену
всех отрицательных значений на можно сделать следующим образом:

In : data = 

In : data
Out: 
array(,
       ,
       ,
       ,
       ,
       ,
       ])

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

In : data = 7

In : data
Out: 
array(,
       ,
       ,
       ,
       ,
       ,
       ])

Базовые математические функции

Все те же самые
операции и многие другие можно выполнять через функции пакета NumPy, а не через
методы массива. Вот список основных из них:

Название

Описание

np.abs(x)

Вычисление
модуля от аргумента(ов)x; xможет быть
числом, списком или массивом.

np.amax(x)

Нахождение
максимального значения от аргумента(ов)x

np.amin(x)

Нахождение
минимального значения от аргумента(ов)x

np.argmax(x)

Нахождение
индекса максимального значения дляx.

np.argmin(x)

Нахождение
индекса минимального значения дляx.

np.around(x)

Округление
до ближайшего целого.

np.mean(x)

Вычисление
среднего значения.

np.log(x)

Вычисление
натурального логарифма.

np.log2(x)

Вычисление
логарифма по основанию 2.

np.log10(x)

Вычисление
логарифма по основанию 10.

Предположим,
имеется массив:

a = np.array(-1, 1, 5, -44, 32, 2)

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

np.abs(a) # array()

На выходе
получаем новый массив с абсолютными величинами. То же самое будет, если на вход
подать обычный список значений:

np.abs(-1, 1, 5, -44, 32, )# array()

или просто
число:

np.abs(-10.5) # 10.5

Эти примеры
демонстрируют разные типы входных данных: массив, список, число. Все это
допустимо использовать в математических функциях.

Остальные
функции работают по аналогии, например:

np.amax(a) # 32
np.log(a) # array()
np.around(0.7) # 1.0

Функции amin, amax, mean, argmax, argmin, при работе с
многомерными матрицами, могут делать вычисления по строго определенной оси.
Например:

a.resize(2, 3)
np.amax(a, axis=)  # array()
np.argmax(a, axis=1) # array(, dtype=int32)

И так далее.

Search Sorted

There is a method called which performs a binary search in the array,
and returns the index where the specified value would be inserted to maintain the
search order.

The method is assumed to be
used on sorted arrays.

Example

Find the indexes where the value 7 should be inserted:

import numpy as nparr = np.array()
x =
np.searchsorted(arr, 7)print(x)

Example explained: The number 7 should be inserted on index 1 to remain the sort order.

The method starts the search from the left and returns the first index where the number
7 is no longer larger than the next value.

Example

Find the indexes where the value 7 should be inserted, starting from the
right:

import numpy as nparr = np.array()
x =
np.searchsorted(arr, 7, side=’right’)print(x)

Example explained: The number 7 should be inserted on index 2 to remain the sort order.

The method starts the search from the right and returns the first index where the number
7 is no longer less than the next value.

Example

Find the indexes where the values 2, 4, and 6 should be inserted:

import numpy as nparr = np.array()
x =
np.searchsorted(arr, )print(x)

The return value is an array: containing the three indexes where 2, 4, 6 would be inserted
in the original array to maintain the order.

❮ Previous
Next ❯

7.1.1. Значения -inf, inf и nan

Возможно вы обратили внимание на то, что когда мы вычисляли натуральный логарифм массива, среди значений которого был ноль, не появилось абсолютно никакой ошибки, а сам логарифм стал равен значению (минус бесконечность). Убедимся в этом еще раз:. Более того, в NumPy мы даже можем делить на ноль:

Более того, в NumPy мы даже можем делить на ноль:

NumPy предупредил нас о том, что встретил деление на ноль, но тем не менее выдал ответ (плюс бесконечность). Дело в том, что с математической точки зрения все абсолютно верно — если вы что-то делите на бесконечно малое значение то в результате получете значение, которое окажется бесконечно большим. Если результатом математической операции является плюс или минус бесконечность, то логичнее выдать значение или чем выдавать ошибку.

В NumPy есть еще одно специальное значение — . Данное значение выдается тогда, когда результат вычислений не удается определить:

Заметьте, что NumPy нас просто предупредил о том, что ему попалось недопустимое значение, но ошибки не возникло. Дело в том, что в реальных вычислениях значения , или встречается очень часто, поэтому появление этого значения проще обрабатывать специальными методами (функции и ), чем постоянно лицезреть сообщения об ошибках.

Новичкам, довольно трудно привыкнуть, к тому что в недрах компьютера вся арифметика на самом деле является двоичной и с этим связано очень много казусов. Во первых не совсем понятно, когда ждать появления значений и :

Число 1.633123935319537e+16 появилось потому что в NumPy выполняются арифметические, а не символьные вычисления, т. е. число π хранится в памяти компьютера не как знание о том, что это математическая константа с бесконечным количеством десятичных знаков после запятой, а как обычное число с десятичной точкой (десятичная дробь) равная числу π с очень маленькой, но все же, погрешностью:

NumPy отличает предельные случаи, когда вычисления выполнить невозможно, например, деление на ноль. В таких случаях появляются значения , и . Если из-за самых незначительных погрешностей вычисления все же возможны, то NumPy их обязательно выполнит. В этих случаях вместо значений или у вас будут появляться самые маленькие или самые большие числа, которые возможно представить на вашем компьютере.

Тем не менее и на этом сюрпризы не заканчиваются. Если число 1.633123935319537e+16 является самым больши, которое может появиться при вычислениях, оно вполне ожидаемо должно появиться в самых разных ситуациях. Например:

То, есть какая-то, длинная арифметика все же доступна — очень хорошая новость, для лбителей криптографии и теории чисел. Но иногда:

В заключение могу лишь сказать, что все предельные случаи требуют кардинальных решений. Некоторые решения имеются в самом NumPy, некоторые предоставляют другие пакеты. Если вам необходимы точные решения, то лучше обратиться к системам компьютерной алгебры и символьных вычислений, например пакету SymPy — маленький, но мощьный пакет Python для символьных вычислений. Если вы решили отправиться в самые дебри теории чисел, алгебры и криптографии, то лучшим решением окажется программа GAP. Программа GAP не является программой Python, но имеет Python интерфейс в замечательной программе Sage, которая определенно заслуживает вашего внмания.

Python Tutorial

Python HOMEPython IntroPython Get StartedPython SyntaxPython CommentsPython Variables
Python Variables
Variable Names
Assign Multiple Values
Output Variables
Global Variables
Variable Exercises

Python Data TypesPython NumbersPython CastingPython Strings
Python Strings
Slicing Strings
Modify Strings
Concatenate Strings
Format Strings
Escape Characters
String Methods
String Exercises

Python BooleansPython OperatorsPython Lists
Python Lists
Access List Items
Change List Items
Add List Items
Remove List Items
Loop Lists
List Comprehension
Sort Lists
Copy Lists
Join Lists
List Methods
List Exercises

Python Tuples
Python Tuples
Access Tuples
Update Tuples
Unpack Tuples
Loop Tuples
Join Tuples
Tuple Methods
Tuple Exercises

Python Sets
Python Sets
Access Set Items
Add Set Items
Remove Set Items
Loop Sets
Join Sets
Set Methods
Set Exercises

Python Dictionaries
Python Dictionaries
Access Items
Change Items
Add Items
Remove Items
Loop Dictionaries
Copy Dictionaries
Nested Dictionaries
Dictionary Methods
Dictionary Exercise

Python If…ElsePython While LoopsPython For LoopsPython FunctionsPython LambdaPython ArraysPython Classes/ObjectsPython InheritancePython IteratorsPython ScopePython ModulesPython DatesPython MathPython JSONPython RegExPython PIPPython Try…ExceptPython User InputPython String Formatting

Функции перемешивания элементов массива

Следующие две
функции:

np.random.shuffle() и np.random.permutation()

перемешивают
случайным образом элементы массива. Например, дан массив:

a = np.arange(10) # array()

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

np.random.shuffle(a) # array()

Причем, здесь
меняется сам массив a. Если вызвать эту функцию еще раз:

np.random.shuffle(a) # array()

то значения еще
раз перетасуются. Но, работает она только с первой осью axis0. Например,
если взять двумерный массив:

a = np.arange(1, 10).reshape(3, 3)

и вызвать эту
функцию:

np.random.shuffle(a)

то в массиве aбудут
переставлены только строки:

array(,

      
,

])

Вторая функция
возвращает случайную последовательность чисел, генерируя последовательность «на
лету»:

np.random.permutation(10) # array()

Creating Python ndarray

The Python Numpy module has a ndarray object, shorter version of N-dimensional array, or an array. Like any other programming language array, this Numpy ndarray object allows you to store multiple items of the same data type.

The following are the list of available functions to create an Array by the Python Numpy module.

  • array function: which helps you to create an array or convert the data from List, Tuple, or any sequence of items (something like range) to ndarray.
  • asarray function: Use this to convert the input data to Python ndarray. However, it won’t copy if the given input is already a ndarray.
  • zeros: Creates an array of 0’s of specified shape and type.
  • zeros_like: Same as zeros. However, it takes another array to get shape and dtype.
  • ones: Creates an array of 1’s of a given shape and data type.
  • ones_like: It accepts another array to read its shape and data type.
  • empty, empty_like: These functions create an empty array by allocating some memory to them.
  • arange: This creates or returns an array of elements in a given range. Same as range function.
  • eye, identity: creates a square identity matrix in Python.

Create an Array in Python using the array function

As we said earlier, array function converts the given list, tuple, or any sequence for that matter into an array. It is a simple example to create an array in Python.

Create an Array from List in Python

Here, we declared an integer list of numbers from 1 to 5. Next, we used the array function available in the numpy module to convert that list into an array.

Let me create an ndarray of mixed items in Python.

Let me create a Python Numpy ndarray from a list of lists. Here, we declared a nested list of lists with integer values. Next, we used the array function to convert the list to Numpy array.

You might wonder, why don’t we use Lists when it looks like the same?. Arrays meant to perform vectorized operations. I mean, when you perform any operation or use any function, then that function applied to each item in an array.

We show those operations in the upcoming topic. However, we use a simple example to show you the same.

You can also create an array from a Tuple in Python.

Placing or Nesting two lists inside a [] brackets create a two-dimensional array.

Here, we are creating a 3 * 3 matrix or three-dimensional array.

Create an Array using srange

In this example, we are using the Python Numpy arange function to create an array of numbers range from 0 to n-1, where n is the given number. For example, np.arange(5) retunes an array of numbers in sequence from 0 to 4.

Create an Array using linspace in Python

In this example, we used the Python Numpy linspace function. The syntax behind this function is:

Here, we created three arrays of numbers range from 0 to n serrated by steps. For example, np.linspace(0, 1, 5) retunes an array of numbers from 0 to 1 in five equal steps.

Apart from an array function, the NumPy module has few other functions to create an ndarray. They are zeros, ones, and empty functions.

Python zeros array

The Python zeros function creates an array of zeros. This function accepts the arguments to specify the shape of an array. For example,

  • zeros(2) means a one-dimensional array of two zero elements.
  • zeros(2, 3) means 2 * 3 matrix of zeros.
  • and zeros(2, 3, 4) means a three-dimensional array of zeros.

Python ones array

The Python ones function to create an array of 1’s. This numpy ones function accepts the arguments to specify the shape or number of items of an array. For example,

  • ones(4) means a one-dimensional array of four 1’s.
  • ones(2, 4) means 2 * 4 matrix of ones and ones(2, 3, 4) means 3D array 2 * 3 * 4 of 1’s.

Use the Python NumPy random function to create an array of random numbers. Please visit Python Random Array article

Python empty array

The Python empty function creates an empty array. It is not always an empty array, and it might load garbage values or zeros, etc. So, don’t be surprised!.

The NumPy full function creates an array of a given number.

The Python eye function creates an identical N * N matrix, where N is the given argument value.

Транспонирование и изменение формы матриц в numpy

Нередки случаи, когда нужно повернуть матрицу. Это может потребоваться при вычислении скалярного произведения двух матриц. Тогда возникает необходимость наличия совпадающих размерностей. У массивов NumPy есть полезное свойство под названием , что отвечает за транспонирование матрицы.

Некоторые более сложные ситуации требуют возможности переключения между размерностями рассматриваемой матрицы. Это типично для приложений с машинным обучением, где некая модель может запросить определенную форму вывода, которая является отличной от формы начального набора данных. В таких ситуациях пригодится метод из NumPy. Здесь от вас требуется только передать новые размерности для матрицы. Для размерности вы можете передать , и NumPy выведет ее верное значение, опираясь на данные рассматриваемой матрицы:

Еще больше размерностей NumPy

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

В большинстве случаев для указания новой размерности требуется просто добавить запятую к параметрам функции NumPy:

Shell

array(,
,
],

,
,
],

,
,
],

,
,
]])

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

array(1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.,

1.,1.)

Python NumPy

NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution

NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations

Операции с матрицами

Выше мы привели пример сложение, умножение матриц и транспонирование матрицы. Мы использовали вложенные списки, прежде чем создавать эти программы. Рассмотрим, как выполнить ту же задачу, используя массив NumPy.

Сложение двух матриц

Мы используем оператор +, чтобы сложить соответствующие элементы двух матриц NumPy.

import numpy as np

A = np.array(, ])
B = np.array(, ])
C = A + B      # сложение соответствующих элементов
print(C)

''' 
Вывод:

 ]
 '''

Умножение двух матриц

Чтобы умножить две матрицы, мы используем метод dot(). Узнайте больше о том, как работает numpy.dot .

Примечание: * используется для умножения массива (умножения соответствующих элементов двух массивов), а не умножения матрицы.

import numpy as np

A = np.array(, ])
B = np.array(, , ])
C = a.dot(B)
print(C)

''' 
Вывод:

 ]
'''

Транспонирование матрицы

Мы используем numpy.transpose для вычисления транспонирования матрицы.

import numpy as np

A = np.array(, , ])
print(A.transpose())

''' 
Вывод:

 ]
'''

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

Python Numpy array Slicing

First, we declare a single or one-dimensional array and slice that array. Python slicing accepts an index position of start and endpoint of an array. The syntax of this is array_name.

Both the start and end position has default values as 0 and n-1(maximum array length). For example, arr1 means starts at index position 1 and ends at position 5. arr1 starts at 0 and ends at index position 7.

This time, we declared a two-dimensional array and slicing the same using index values.

From the above arrays, let me use the negative values as the start and end positions.

Reverse Numpy array in Python

Using the negative index value, you can reverse rows and column position of values, which is called Python Numpy array reverse.

Create an Array from existing Array

This example shows how to create an array from an existing array in Python. For this, we are using the Python Numpy array slicing concept.

Добро пожаловать в NumPy!

NumPy (NumericalPython) — это библиотека Python с открытым исходным кодом, которая используется практически во всех областях науки и техники. Это универсальный стандарт для работы с числовыми данными в Python, и он лежит в основе научных экосистем Python и PyData. В число пользователей NumPy входят все — от начинающих программистов до опытных исследователей, занимающихся самыми современными научными и промышленными исследованиями и разработками. API-интерфейс NumPy широко используется в пакетах Pandas, SciPy, Matplotlib, scikit-learn, scikit-image и в большинстве других научных и научных пакетов Python.

Библиотека NumPy содержит многомерный массив и матричные структуры данных (дополнительную информацию об этом вы найдете в следующих разделах). Он предоставляет ndarray, однородный объект n-мерного массива, с методами для эффективной работы с ним. NumPy может использоваться для выполнения самых разнообразных математических операций над массивами. Он добавляет мощные структуры данных в Python, которые гарантируют эффективные вычисления с массивами и матрицами, и предоставляет огромную библиотеку математических функций высокого уровня, которые работают с этими массивами и матрицами.

Узнайте больше о NumPy здесь!

GIF черезgiphy

Установка NumPy

Чтобы установить NumPy, я настоятельно рекомендую использовать научный дистрибутив Python. Если вам нужны полные инструкции по установке NumPy в вашей операционной системе, вы можетенайти все детали здесь,

Если у вас уже есть Python, вы можете установить NumPy с помощью

conda install numpy

или

pip install numpy

Если у вас еще нет Python, вы можете рассмотреть возможность использованияанаконда, Это самый простой способ начать. Преимущество этого дистрибутива в том, что вам не нужно слишком беспокоиться об отдельной установке NumPy или каких-либо основных пакетов, которые вы будете использовать для анализа данных, таких как pandas, Scikit-Learn и т. Д.

Если вам нужна более подробная информация об установке, вы можете найти всю информацию об установке наscipy.org,

фотоАдриеннотPexels

Если у вас возникли проблемы с установкой Anaconda, вы можете ознакомиться с этой статьей:

Как импортировать NumPy

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

Чтобы начать использовать NumPy и все функции, доступные в NumPy, вам необходимо импортировать его. Это можно легко сделать с помощью этого оператора импорта:

import numpy as np

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

В чем разница между списком Python и массивом NumPy?

NumPy предоставляет вам огромный выбор быстрых и эффективных числовых опций. Хотя список Python может содержать разные типы данных в одном списке, все элементы в массиве NumPy должны быть однородными. Математические операции, которые должны выполняться над массивами, были бы невозможны, если бы они не были однородными.

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

фотоPixabayотPexels

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

Что такое массив?

Массив является центральной структурой данных библиотеки NumPy. Это таблица значений, которая содержит информацию о необработанных данных, о том, как найти элемент и как интерпретировать элемент. Он имеет сетку элементов, которые можно проиндексировать в Все элементы имеют одинаковый тип, называемыймассив dtype(тип данных).

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

Одним из способов инициализации массивов NumPy является использование вложенных списков Python.

a = np.array(, , ])

Мы можем получить доступ к элементам в массиве, используя квадратные скобки. Когда вы получаете доступ к элементам, помните, чтоиндексирование в NumPy начинается с 0, Это означает, что если вы хотите получить доступ к первому элементу в вашем массиве, вы получите доступ к элементу «0».

print(a)

Выход:

3.8. Арифметические операции

Поэлементно вычисляет наименьшее общее кратное массивов x1 и x2.
Поэлементно вычисляет наибольший общий делитель массивов x1 и x2.
Поэлементная сумма значений массивов.
Вычисляет обратное значение () каждого элемента массива.
Эквивалентно простому копированию () элементов массива, но только для массивов поддерживающих математические операции. Формально соответствует математической записи .
Отрицательное значение элементов массива.
Поэлементное умножение значений массива x1 на значения массива x2.
Поэлементное деление значений массива x1 на значения массива x2.
Поэлементное возведение значений массива x1 в степень равную значениям из массива x2.
Поэлементная разность значений массива x1 и x2.
Поэлементное истинное деление значений массива x1 на значения массива x2.
Поэлементное целочисленное деление значений массива x1 на значения массива x2.
Поэлементное возведение значений массива x1 в степень равную значениям из массива x2, адаптированное для чисел с плавающей точкой.
Поэлементный остаток от деления значений массива x1 на значения массива x2.
Поэлементно вычисляет остаток от деления значений массива x1 на значения массива x2.
Дробная и целая часть элементов массива.
Элементарный остаток от деления значений массива x1 на значения массива x2.
Результат истинного деления и остаток от деления значений массива x1 на значения массива x2.

Примеры работы с NumPy

Подытожим все вышесказанное. Вот несколько примеров полезных инструментов NumPy, которые могут значительно облегчить процесс написания кода.

Математические формулы NumPy

Необходимость внедрения математических формул, которые будут работать с матрицами и векторами, является главной причиной использования NumPy. Именно поэтому NumPy пользуется большой популярностью среди представителей науки. В качестве примера рассмотрим формулу , которая является центральной для контролируемых моделей машинного обучения, что решают проблемы регрессии:

Реализовать данную формулу в NumPy довольно легко:

Главное достоинство NumPy в том, что его не заботит, если и содержат одно или тысячи значение (до тех пор, пока они оба одного размера). Рассмотрим пример, последовательно изучив четыре операции в следующей строке кода:

У обоих векторов и по три значения. Это значит, что в данном случае равно трем. После выполнения указанного выше вычитания мы получим значения, которые будут выглядеть следующим образом:

Затем мы можем возвести значения вектора в квадрат:

Теперь мы вычисляем эти значения:

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

Представление данных NumPy

Задумайтесь о всех тех типах данных, которыми вам понадобится оперировать, создавая различные модели работы (электронные таблицы, изображения, аудио и так далее). Очень многие типы могут быть представлены как n-мерные массивы:

7.4. Генерация случайных значений

Очень многие вычислительные методы требуют генерации случайных значений. В некоторых ситуациях, на генерируемые данные накладываются очень строгие и высокие требования. NumPy содержит функции для генерации простых случайных данных, функции генерации случайных перестановок, а так же большое количество функций для гернерации случайных чисел с всевозможными вероятностными распределениями.

Получение простых случайных данных:

Перестановки:

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

Вы так же имеете доступ к состоянию генератора случайных чисел, а так же можете управлять им:

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий