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

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

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Продолжение статей по numpy Операции над массивами в numpy Статье продолжает тему библиотеки numpy. Начну с простого примера. Пусть вам необходимо получить значения в некотором интервале, равномерное распределённые с заданным шагом. #!/usr/bin/python3
import numpy as np
p = np.arange(-2, 2.1, 0.1)
print(p) Результат выполнения [-2.00000000e+00 -1.90000000e+00 -1.80000000e+00 -1.70000000e+00
-1.60000000e+00 -1.50000000e+00 -1.40000000e+00 -1.30000000e+00
-1.20000000e+00 -1.10000000e+00 -1.00000000e+00 -9.00000000e-01
-8.00000000e-01 -7.00000000e-01 -6.00000000e-01 -5.00000000e-01
-4.00000000e-01 -3.00000000e-01 -2.00000000e-01 -1.00000000e-01
1.77635684e-15 1.00000000e-01 2.00000000e-01 3.00000000e-01
4.00000000e-01 5.00000000e-01 6.00000000e-01 7.00000000e-01
8.00000000e-01 9.00000000e-01 1.00000000e+00 1.10000000e+0
Оглавление

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

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

Продолжение статей по numpy

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

Операции над массивами в numpy

Статье продолжает тему библиотеки numpy.

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

#!/usr/bin/python3
import numpy as np
p = np.arange(-2, 2.1, 0.1)
print(p)

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

[-2.00000000e+00 -1.90000000e+00 -1.80000000e+00 -1.70000000e+00
-1.60000000e+00 -1.50000000e+00 -1.40000000e+00 -1.30000000e+00
-1.20000000e+00 -1.10000000e+00 -1.00000000e+00 -9.00000000e-01
-8.00000000e-01 -7.00000000e-01 -6.00000000e-01 -5.00000000e-01
-4.00000000e-01 -3.00000000e-01 -2.00000000e-01 -1.00000000e-01
1.77635684e-15 1.00000000e-01 2.00000000e-01 3.00000000e-01
4.00000000e-01 5.00000000e-01 6.00000000e-01 7.00000000e-01
8.00000000e-01 9.00000000e-01 1.00000000e+00 1.10000000e+00
1.20000000e+00 1.30000000e+00 1.40000000e+00 1.50000000e+00
1.60000000e+00 1.70000000e+00 1.80000000e+00 1.90000000e+00
2.00000000e+00]

Не правда ли, удобно.

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

f = np.sin(p)

и f будет содержать значения функции во всех точках p.

Транспонирование массивов в numpy

#!/usr/bin/python3
import numpy as np
p = np.arange(10).reshape(5, 2)
print(p)
p1 = np.transpose(p)
print(p1)
p2 = p1.T
print(p2)

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

[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
[[0 2 4 6 8]
[1 3 5 7 9]]
[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]

Транспонирование массивов можно осуществлять двумя способами. С помощью метода numpy.transpose() и с помощью специального атрибута '.T'.

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

Понятие осей в numpy

Ограничимся пока двумерным и его частным случаем одномерным массивами. Ось (axis) определяет направление вычисления. При axis=0 предполагается, что операции производятся вдоль столбцов, axis=1 - операция производится вдоль строк. Например

#!/usr/bin/python3
import numpy as np
p = np.arange(25).reshape(5, 5)
print(p)
p1 = np.sum(p, axis=0)
print(p1)

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

[[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
[50 55 60 65 70]

Результат, я думаю, в комментариях не нуждается.

С осями всё, на самом деле, сложнее, так как их количество определяется размерностью массива.

Сортировки массивов в numpy

Не много о сортировке. Есть метод numpy.sort() которому указывается массив и он возвращает новый отсортированный массив, а есть метод у самого созданного массива с тем же названием и он сортирует существует этот же массив, не создавая нового. Будем это помнить.

А теперь примеры

#!/usr/bin/python3
import numpy as np
p = np.array([[2, 8, 9], [7, 5, 4]])
p1=np.sort(p, axis=1)
print(p1)

Результат

[[2 8 9]
[4 5 7]]

Как видим мы получили массив отсортированный по строкам.

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

#!/usr/bin/python3
import numpy as np
p = np.array([[2, 8, 9], [7, 5, 4]])
p.reshape(6).sort()
p.reshape(2, 3)
print(p)

Результат

[[2 4 5]
[7 8 9]]

Мы не закончили с сортировками в numpy и будем ещё к ним возвращаться.

Как видим в numpy всяких возможностей, будем потихоньку их описывать.

Ну, пока всё!

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

- Вас уже начали учить программированию? - Да, сегодня мы общались с ИИ
- Вас уже начали учить программированию? - Да, сегодня мы общались с ИИ