Добавить в корзинуПозвонить
Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Использование библиотеки numpy. Ввод и вывод массивов

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Начала использования библиотеки numpy на языке Python Мы дошли, наконец, до очень мощного математического инструмента - библиотеки numpy. Многие другие библиотеки, например, библиотеки поддержки искусственного интеллекта, используют данную библиотеку в качестве инструмента обработки больших массивов данных. Поскольку материал довольно обширный, то библиотеке numpy будет посвящено несколько статей. Сколько, пока не знаю, но не две и не три. Установка библиотеки numpy Начну с того, что установка библиотеки numpy осуществляется обычным образом pip3 install numpy (или в Windows pip install numpy) Соотвественно подключение библиотеки import numpy или как часто пишут import numpy as np Вот в общем то и всё, можно начинать работать. Задание массива numpy и простой вывод Надо сказать, что в отличие от списков массивы numpy: Как вариант массив
Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Программирование на языке Python. Индексная стать на подборку "Некоторые полезные библиотеки для Python"
programmer's notes (python and more)22 апреля 2024

Начала использования библиотеки numpy на языке Python

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

Установка библиотеки numpy

Начну с того, что установка библиотеки numpy осуществляется обычным образом

pip3 install numpy (или в Windows pip install numpy)

Соотвественно подключение библиотеки

import numpy

или как часто пишут

import numpy as np

Вот в общем то и всё, можно начинать работать.

Задание массива numpy и простой вывод

Надо сказать, что в отличие от списков массивы numpy:

  1. Однородны, т.е. состоят из элементов одного типа, в отличие от стандартных списков. Python.
  2. Многомерны, т.е. их размерность заложена в их свойства изначально. И опять же они этим отличаются от списков, многомерность которых фиктивная и основывается на том, что элементом писка также может быть список.

Как вариант массивы numpy задаются из списка (кортеж тоже сгодится).

#!/usr/bin/python3
import numpy as np
arr = np.array([3.12, 1.22, 6.77, 4.44])
print(arr)
arr[0] = 5.44
print(arr)

Результат выполнения программы

[3.12 1.22 6.77 4.44]
[5.44 1.22 6.77 4.44]

Какие выводы можнос сделать из данной программы?

  • Ну, как мы видим print хорошо себе понимает массивы numpy;
  • Список автоматически переходит в одномерный массив numpy;
  • Элементы массива numpy можно легко изменять используя квадратные скобки, нумерация элементов массива идёт с 0.

Размерность массивов numpy

Начну с того, что в numpy есть вообще нульмерные массивы. И ведет они себе в основном как обычные переменные заданного типа.

#!/usr/bin/python3
import numpy as np
arr = np.array(10)
arr = arr**3
print(arr)

Результат выполнения программы

1000

Т.е. arr в программе ведёт себя как обычная переменная целого типа.

Легко можно создавать и массивы больших размерностей. Выше мы уже создавали одномерный массив. Также легко создавать и n-мерные массивы. Ниже создаётся двумерный массив.

#!/usr/bin/python3
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)

Результат выполнения программы

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

Для 3-мерного массива также всё просто

arr = np.array([[[1, 2], [3, 3]], [[4, 5], [6, 6]]])

Размерность массива можно определить с помощью свойства ndim, например

print(arr.ndim)

Тип элементов массива можно определить с помощью свойства dtype.

print(arr.dtype)

Для последнего примера результат будет int64.

Важным методом - свойством является shape. Свойство содержит кортеж, содержащий размеры массива. С помощью него можно менять размерность. Рассмотрим пример.

#!/usr/bin/python3
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
print(arr.shape)
arr1 = arr.flatten()
arr.shape = (6)
print(arr1)
print(arr)
print(arr1.shape)
print(arr.shape)
arr.shape = (3, 2)
print(arr)
print(arr.size)

Результат выполнения программы

[[1 2 3]
[4 5 6]]
(2, 3)
[1 2 3 4 5 6]
[1 2 3 4 5 6]
(6,)
(6,)
[[1 2]
[3 4]
[5 6]]
6

Пояснение к программе

Как видим, shape выдаёт размерность массива, но с помощью shape мы можем менять размерность. Для создания одномерного массива кортеж должен содержать просто количество элементов массива. Создать одномерный массив можно и просто методом flatten(). Наконец количество элементов в любом массиве можно определить с помощью свойства size.

Следует отметить, что в numpy есть важная функция reshape(). По своему воздействию она похожа на свойство shape. Но есть отличие. Она создаёт новый массив, а shape просто меняет существующий без копирования в новую область памяти. Но к функции reshape() мы ещё вернёмся.

Вывод (перебор) элементов массива numpy

Можно по-разному перебирать элементы массивов в библиотеке numpy. Мы уже знаем, что функция print() выводит все элементы массива. Ниже в программе показано еще три способа перебора

#!/usr/bin/python3
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
[print(arr[i][j], end=' ') for j in range(3) for i in range(2)]
print()
[print(it, end=' ') for it in np.nditer(arr)]
print()
[[print(it2, end=' ') for it2 in it1] for it1 in arr]
print()

Результат выполнения программы

1 4 2 5 3 6  
1 2 3 4 5 6  
1 2 3 4 5 6

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

Следующая статья о numpy

Ну, пока всё!

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

Таких массивов данных вы ещё и не видели
Таких массивов данных вы ещё и не видели