Библиотека numpy в python

Содержание:

Линейная алгебра

SciPy обладает очень быстрыми возможностями линейной алгебры, поскольку он построен с использованием библиотек ATLAS LAPACK и BLAS. Библиотеки доступны даже для использования, если вам нужна более высокая скорость, но в этом случае вам придется копнуть глубже.

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

Давайте посмотрим на процедуру линейной алгебры на примере. Мы попытаемся решить систему линейной алгебры, что легко сделать с помощью команды scipy linalg.solve.

Этот метод ожидает входную матрицу и вектор правой части:

# Import required modules/ libraries
import numpy as np
from scipy import linalg

# We are trying to solve a linear algebra system which can be given as:
#               1x + 2y =5
#               3x + 4y =6

# Create input array
A= np.array(,])

# Solution Array
B= np.array(,])

# Solve the linear algebra
X= linalg.solve(A,B)

# Print results
print(X)

# Checking Results
print("\n Checking results, following vector should be all zeros")
print(A.dot(X)-B)

Python numpy flip array

  • In this method, we will discuss the Python numpy flip array. For this, we can easily use the function numpy. flip().
  • This method reverses the order of given array elements along the axis, preserving the shape of the array.
  • The shape of the array is fixed, but the number of elements is reordered.

Syntax:

Here is the Syntax of the flip() function

Example:

Let’s take an example to check how to implement a reverse NumPy array by using the flip() function.


Python numpy flip array

You may like the following Python NumPy tutorials:

  • Python NumPy empty array with examples
  • Python NumPy round + 13 Examples
  • Python NumPy nan
  • Python NumPy Data types
  • Python NumPy Normalize
  • Valueerror: Setting an array element with a sequence
  • Python NumPy Average
  • Python NumPy absolute value with examples
  • What is python Django
  • Python dictionary length

In this Python tutorial, we will discuss Python reverse NumPy array with a few examples like below:

  • Python reverse array sort reverse
  • Python numpy inverse array
  • Python numpy invert array
  • Python numpy flip array

Трансляция с помощью numpy.where()

Если мы предоставим все массивы condition, x и y, numpy будет транслировать их вместе.

import numpy as np

a = np.arange(12).reshape(3, 4)

b = np.arange(4).reshape(1, 4)

print(a)
print(b)

# Broadcasts (a < 5, a, and b * 10)
# of shape (3, 4), (3, 4) and (1, 4)
c = np.where(a < 5, a, b * 10)

print(c)

Вывод

 
 ]
`0 1 2 3`

 
 ]

Опять же, здесь вывод выбирается на основе условия, поэтому все элементы, но здесь b, транслируются в форму a. (Одно из его измерений имеет только один элемент, поэтому при трансляции ошибок не будет).

Итак, b теперь станет ], и теперь мы можем выбирать элементы даже из этого транслируемого массива. Таким образом, форма вывода такая же, как у файла.

Python NumPy Shape

  • In this section, we will discuss Python NumPy shape.
  • NumPy arrays have a function called shape that always returns a tuple with each index having the number of adjacent elements.
  • The Numpy array shape property is to find the shape of an array.
  • In this method we can easily use the numpy.shape() function.

Syntax:

Here is the Syntax of numpy.shape()

  • It consists of few parameters.
    • arr: input array
    • Returns: The values of the shape function always give the length of the adjacent np. array.

Example:

Let’s take an example to check how to implement Python NumPy shape

In the above example the array returns (2,6) which means that the array has 2 dimensions, and each dimension has 6 values.

Here is the Screenshot of the following given code


Python NumPy shape

Read Python NumPy Random + Examples

Перестройка массива

После нарезки данных вам может понадобиться изменить их.

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

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

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

Форма данных

Массивы NumPy имеют атрибут shape, который возвращает кортеж длины каждого измерения массива.

Например:

При выполнении примера печатается кортеж для одного измерения.

Кортеж с двумя длинами возвращается для двумерного массива.

Выполнение примера возвращает кортеж с количеством строк и столбцов.

Вы можете использовать размер измерений вашего массива в измерении формы, например, указав параметры.

К элементам кортежа можно обращаться точно так же, как к массиву, с 0-м индексом для числа строк и 1-м индексом для количества столбцов. Например:

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

Изменить форму 1D в 2D Array

Обычно требуется преобразовать одномерный массив в двумерный массив с одним столбцом и несколькими массивами.

NumPy предоставляет функцию reshape () для объекта массива NumPy, который можно использовать для изменения формы данных.

Функция reshape () принимает единственный аргумент, который задает новую форму массива. В случае преобразования одномерного массива в двумерный массив с одним столбцом кортеж будет иметь форму массива в качестве первого измерения (data.shape ) и 1 для второго измерения.

Собрав все это вместе, мы получим следующий проработанный пример.

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

Изменить форму 2D в 3D Array

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

Хорошим примером являетсямодель в библиотеке глубокого обучения Keras.

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

Мы можем использовать размеры в атрибуте shape в массиве, чтобы указать количество выборок (строк) и столбцов (временных шагов) и зафиксировать количество объектов в 1

Собрав все это вместе, мы получим следующий проработанный пример.

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

Using fliplr() function

  • In this example, we can easily use the fliplr() function to reverse an original array.
  • The np.fliplr() method flips the array in left-right direction. The numpy. flipr() function always accepts a given array as a parameter and returns the same array and flip in the left-right direction.
  • It reverses the order of elements on the given axis as 1 (left/right).

Syntax:

Here is the Syntax of fliplr() function

  • It consists of few parameters
    • arr: input array
    • Returns: It returns an output numpy array with the columns reversed. Since the function is returned the operation.

Example:

Let’s take an example to check how to implement a reverse NumPy array by using the fliplr() function.

Here is the Screenshot of the following given code


Python reverse numpy array fliplr method

Passing matrices into the sign function

We can also use the np.sign function to indicate the sign of the elements present in a matrix. For that, we shall be creating a matrix using the matrix function present in numpy. It will be a 4 by 4 matrix where the range of the numbers stored will be from -5 to 11.

import numpy as np
matrix = np.matrix(np.arange(-5,11).reshape((4,4)))

On printing the matrix, it will be:

Now, we shall pass this ‘matrix’ as an argument to the sign function and print the return value.

print(np.sign(matrix))

The output will be:

As you can see here the output is also a matrix of same size as the input matrix – 4 by 4. The values from -5 to -1 are given the values of -1, the 0 value remains 0 and the values 1 to 10 are 1.

The entire code is:

import numpy as np
matrix = np.matrix(np.arange(-5,11).reshape((4,4)))

print(np.sign(matrix))

Python reverse array sort reverse

  • In this section, we will discuss Python reverse array sort reverse.
  • In Numpy, the np.sort() function does not allow us to sort an array in the largest number order. Instead, that we can reverse an array providing list slicing in Python after it has been sorted in ascending order.
  • The slicing method notation with default start and stop indices and negative step size -1 reverses a given list.
  • Use slicing method s to access every step-the element starting from index start (included) and ending in index stop.

Example:

  • In the above code, we will import a numpy library and create an array using the numpy.array function. Now create a variable and arrange the elements using the np.sort() function.
  • Reverse sorted array using the slicing method and print the output.

Here is the Screenshot of the following given code


Python reverse numpy array reverse method

Python numpy shape vs size

  • In this section, we will discuss Python NumPy shape vs size.
  • Shape compares to the size of the dimensions of an n-darray. Size regarding arrays relates to the number of elements that are stored in the array.
  • The Np .size() function has few arguments. First is an array, which required a parameter need to give an array. The second is an axis, by default an argument. The axis stores no value, according to the condition you can update it whereas the Np.shape() function consists of two parameters input array and it will always return elements of the shape function give the lengths of the corresponding array dimensions.
  • In np. size() function counts the number of elements along a given axis and in the case of numpy.shape() function returns a function with each indices having the number of adjacents elements.

Example:

In the above example, we will import a NumPy library and create an array using the function numpy. array. Now, we will use the function np. shape to identify the dimension of an array.

In this example, you can also check that we create an array after getting the dimension of an array and use the function np. size() and it will display the size of an array.

Here is the Screenshot of the following given code


Python numpy shape vs size

Read Python NumPy Average with Examples

Python numpy inverse array

  • In this section, we will discuss Python numpy inverse array.
  • For matrix inverse, we need to use numpy.linalg.inv() function.
  • This method will inverse the elements in a given matrix. The inverse of a matrix is that if it is multiplied by the original numpy matrix, The output will display in an identity matrix.
  • It consists of only one parameter that is Arr and Arr can be a matrix.
  • It provides a user easy method to calculate the inverse of the matrix. The function np.linalg.inv() is already available in the Python numpy library.

Syntax:

Example:

Let’s take an example to check how to inverse an array in python

In the above code, we will import a numpy library and create an array using the numpy. array function. Now create a variable and assign the function numpy. linalg and display the result.

Here is the Screenshot of the following given code


Python numpy inverse array

1.4.1.5. Indexing and slicing¶

The items of an array can be accessed and assigned to the same way as
other Python sequences (e.g. lists):

>>> a = np.arange(10)
>>> a
array()
>>> a], a2], a-1
(0, 2, 9)

Warning

Indices begin at 0, like other Python sequences (and C/C++).
In contrast, in Fortran or Matlab, indices begin at 1.

The usual python idiom for reversing a sequence is supported:

>>> a)

For multidimensional arrays, indices are tuples of integers:

>>> a = np.diag(np.arange(3))
>>> a
array(,
       ,
       ])
>>> a1, 1
1
>>> a2, 1 = 10 # third line, second column
>>> a
array(,
       ,
       ])
>>> a1
array()

Note

  • In 2D, the first dimension corresponds to rows, the second
    to columns.
  • for multidimensional , is interpreted by
    taking all elements in the unspecified dimensions.

Slicing: Arrays, like other Python sequences can also be sliced:

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

Note that the last index is not included! :

>>> a)

All three slice components are not required: by default, start is 0,
end is the last and step is 1:

>>> a13
array()
>>> a)
>>> a3:]
array()

A small illustrated summary of NumPy indexing and slicing…

You can also combine assignment and slicing:

>>> a = np.arange(10)
>>> a5:] = 10
>>> a
array()
>>> b = np.arange(5)
>>> a5:] = b)

Exercise: Indexing and slicing

  • Try the different flavours of slicing, using , and
    : starting from a linspace, try to obtain odd numbers
    counting backwards, and even numbers counting forwards.

  • Reproduce the slices in the diagram above. You may
    use the following expression to create the array:

    >>> np.arange(6) + np.arange(, 51, 10),
           ,
           ,
           ,
           ,
           ])
    

Exercise: Array creation

Create the following arrays (with correct data types):

,
 1, 1, 1, 1],
 1, 1, 1, 2],
 1, 6, 1, 1]]

,
 2., , , , ],
 , 3., , , ],
 , , 4., , ],
 , , , 5., ],
 , , , , 6.]]

Par on course: 3 statements for each

Hint: Individual array elements can be accessed similarly to a list,
e.g. or .

Hint: Examine the docstring for .

Создание массива

Простейший способ создания массива — использование функции
. Она принимает некоторый объект типа последовательностей
(включая другие массивы) и создает новый массив NumPy, содержащий
переданные данные. Например:

In : data1 = 

In : arr1 = np.array(data1)

In : arr1
Out: array()

Вложенные последовательности, как список списков одинаковой длины,
будут преобразованы в многомерный массив:

In : data2 = , ]

In : arr2 = np.array(data2)

In : arr2
Out: 
array(,
       ])

Если явно не указано, пытается вывести подходящий тип
данных для массива, который он создает. Тип данных хранится в
специальном объекте метаданных; например, в двух предыдущих
примерах мы имеем:

In : arr1.dtype
Out: dtype('float64')

In : arr2.dtype
Out: dtype('int64')

Кроме есть несколько других функций для создания новых
массивов:

In : np.zeros(10)
Out: array()

In : np.zeros((3, 6))
Out: 
array(,
       ,
       ])

In : np.empty((2, 3, 2))
Out: 
array(,
        ,
        ],

       ,
        ,
        ]])

In : np.arange(15)
Out: array()

Таблица 1. Функции создания массивов

Функция Описание
Преобразует входные данные (список, кортеж, массив или другая последовательность) в , либо прогнозируя , либо используя заданный ; копирует данные по-умолчанию
Преобразует входные данные в , но не копирует их, если аргумент уже типа
Подобна встроенной функции , но возвращает вместо списка
Создает массив из единиц заданной формы и
Получает на вход массив и создает массив из единиц с такими же формой и
и Подобны и , но создают массивы из нулей
и Создают новые массивы, выделяя новую память, но не инициализируют их какими-либо значениями, как и
Создает массив заданных формы и , при этом все элементы инициализируются заданным значением
Получает на вход массив и создает массив с такими же формой и и значениями
и Создает квадратную единичную матрицу (с единицами на диагонали и нулями вне нее) размера \( N\times N \)

Массив Python

Python поддерживает все операции, связанные с массивом через объект своего списка. Начнем с одномерного инициализации массива.

Пример массива Python

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

arr = 
print (arr)
print (arr)
print (arr)

Выход из двухмерного массива пример программы будет:


3
5

Индексирование массива начинается от 0. Таким образом, значение индекса 2 переменной ARR составляет 3.

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

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

student_marks = 
marks = student_marks+student_marks
print(student_marks + ' has got in total = %d + %f = %f ' % (student_marks, student_marks, marks ))

Он дает следующий выход:

Akkas has got in total = 45 + 36.500000 = 81.500000 marks

В приведенном выше примере вы можете увидеть это, Массив имеют три типа данных – строка, int и float.

Python многомерный массив

Двухмерный массив в Python может быть объявлен следующим образом.

arr2d =  , ]
print(arr2d) # prints elements of row 0
print(arr2d) # prints elements of row 1
print(arr2d) # prints element of row = 1, column = 1

Это даст следующий вывод:

                                                                                                                                                                       
                                                                                                                                                                       
4  

Точно так же мы можем определить трехмерный массив или многомерный массив в Python.

Примеры массива Python

Теперь, когда мы знаем, как определить и инициализировать массив в Python. Мы рассмотрим разные операции, которые мы можем выполнить на массиве Python.

Массив Python, проходящая с использованием для петли

Мы можем использовать для петли для прохождения сквозь элементы массива. Ниже приведен простой пример для цикла для прохождения через массив.

arrayElement = 
for i in range(len(arrayElement)):
   print(arrayElement)

Ниже изображения показывает вывод, создаваемый вышеупомянутым примером примера массива.

Пересекающий 2D-массив, используя для петли

Следующий код распечатает элементы ROW-WISE, а затем следующая часть печатает каждый элемент данного массива.

arrayElement2D =  ,  ]
for i in range(len(arrayElement2D)):
   print(arrayElement2D)

for i in range(len(arrayElement2D)):
   for j in range(len(arrayElement2D)):
       print(arrayElement2D)

Это выведет:

Python Array Append

arrayElement = 
arrayElement.append('Four')
arrayElement.append('Five')
for i in range(len(arrayElement)):
   print(arrayElement)

Новый элемент четыре и пять будут добавлены в конце массива.

One
2
Three
Four
Five

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

arrayElement = 
newArray = 
arrayElement.append(newArray);
print(arrayElement)
]

Теперь наш одномерный массив наращивания превращается в многомерное массив.

Массив Python размер

Мы можем использовать Функция для определения размера массива. Давайте посмотрим на простой пример для длины массива Python.

arr = 

arr2d = ,]

print(len(arr))
print(len(arr2d))
print(len(arr2d))
print(len(arr2d))

Нарезание массива Python

Python предоставляет особый способ создания массива из другого массива, используя нотацию среза. Давайте посмотрим на несколько примеров ломтиков наращиваний Python.

arr = 

#python array slice

arr1 = arr #start to index 2
print(arr1)

arr1 = arr #index 2 to end of arr
print(arr1)

arr1 = arr #start to index 2
print(arr1)

arr1 = arr #copy of whole arr
print(arr1)

arr1 = arr # from index 1 to index 5 with step 2
print(arr1)

Ниже приведены изображение Python Array Slice Program Example.

Мы можем вставить элемент в массиве, используя функция.

arr = 

arr.insert(3,10)

print(arr)

Python Array POP.

Мы можем вызвать функцию POP на массиве, чтобы удалить элемент из массива по указанному индексу.

arr = 

arr.insert(3,10)
print(arr)

arr.pop(3)
print(arr)

Это все о массиве Python и разных операций, которые мы можем выполнить для массивов в Python.

Индексирование и сегментация массивов в Python

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

Выбор элемента двумерной коллекции array

Для выбора элемента двумерной коллекции array укажите кортеж с индексами строки и столбца элемента в квадратных скобках.

>>> import numpy as np
>>> grades = np.array(, , , ])
>>> gradesarray(,
       ,
       ,
       ])
>>> grades # строка 1, столбец 2
4

Выбор подмножества строк двумерной коллекции array

Для выбора одной строки укажите в квадратных скобках только один индекс:

>>> gradesarray()

Для выбора нескольких строк используйте синтаксис сегмента:

>>> gradesarray(,
       ])

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

>>> grades]array(,
       ])

Выбор подмножества столбцов двумерной коллекции array

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

>>> gradesarray()

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

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

>>> gradesarray(,
       ,
       ,
       ])

Для выбора конкретных столбцов используйте список индексов этих строк:

>>> grades]array(,
       ,
       ,
       ])

Создание массивов в Python по диапазонам

NumPy представляет множество функций для создания массивов в заданном диапазоне. Разберем самые распространённые.

3.1. Создание диапазонов функцией arange

В библиотеке NumPy существует функция arange для создания целочисленных диапазонов, аналогичной встроенной функции range в Python.

>>> import numpy as np
>>> np.arange(7)array()
>>> np.arange(5, 10)array()
>>> np.arange(100, 10, -10)array()

При создании коллекций array вы можете воспользоваться встроенной функции Python range, но рекомендуется использовать именно arange, так как она оптимизирована для array. Все свойства arange аналогичны функции range. 

3.2. Создание диапазонов чисел с плавающей точкой функцией linspace

Для создания диапазонов чисел с плавающей точкой можно воспользоваться функцикй limspace библиотеки NumPy. 

>>> import numpy as np
>>> np.linspace(1.0, 2.0, num=5)array()
>>> np.linspace(1.0, 5.0, num=10)array()

В функции linspace первые два аргумента определяют начальное и конечное значение диапазона

Важно: конечное значение включается в array. Ключевой аргумент num необязательный. Он задает количество равномерно распределенных генерируемых значений

По умолчанию num = 50. 

3.3. Изменение размерности array методом reshape

Методом reshape вы можете преобразовать одномерную коллекцию в многомерную. В примере создадим коллекцию array с помощью со значениями от 1 до 36 и с помощью метода reshape преобразуем ее в структуру из 6 строк и 6 столбцов. 

>>> import numpy as np
>>> np.(1, 37).reshape(6, 6)array(,
       ,
       ,
       ,
       ,
       ])
>>> np.(1, 37).reshape(4, 9)array(,
       ,
       ,
       ])

Во втором примере мы преобразовали в структуру 4 строк и 9 столбцов. 

Размерность можно изменять для любой коллекции array, но при условии, что количество новой версии не будет отличаться от оригинала. Например, коллекцию из шести элементов, можно преобразовать в коллекцию 3*2 или 2*3. В нашем примере мы преобразовали коллекцию из 36 элементов в коллекцию 6*6 и 4*9. В случае неправильного преобразования, вы получите ошибку ValueError. 

3.4. Заполнение array конкретными значениями. Функции zeros, ones, full

Функция zeros создает коллекцию содержащие 0. Первым аргументом должно быть целое число или кортеж целых чисел. 

>>> import numpy as np
>>> np.zeros(7)array()
>>> np.zeros((3, 3))array(,
       ,
       ])

Функция ones создает коллекцию содержащие 1. 

>>> import numpy as np
>>> np.ones((3, 3))array(,
       ,
       ])

По умолчанию функции zeros и ones создают коллекции array, содержащие значения float. Для изменения типа значения можно задать аргумент dtype:

>>> import numpy as np

>>> np.ones((3, 3), dtype=int)array(,
       ,
       ])
>>> np.zeros((3, 3), dtype=int)array(,
       ,
       ])

Функция full, возвращает элементы со значением и типом второго аргумента:

>>> import numpy as np
>>> np.full((3, 4), 55)array(,
       ,
       ])
>>> np.full((2, 4), 21.2)array(,
       ])

3.5. Вывод больших коллекций array

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

>>> import numpy as np
>>> np.(1, 100001).(100, 1000)array(,
       ,
       ,
       …,
       ,
       ,
       ])

Добавьте массив NumPy в другой

Вы можете добавить массив NumPy в другой массив NumPy с помощью метода append ().

Рассмотрим следующий пример:

import numpy
 
a = numpy.array()
 
b = numpy.array()
 
newArray = numpy.append(a, b)
 
print("The new array = ", newArray)

В этом примере создается массив NumPy “a”, а затем создается другой массив с именем “b”. Затем мы использовали метод append() и передали два массива. Поскольку массив “b” передается в качестве второго аргумента, он добавляется в конце массива “a”.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector