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

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

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Продолжение статей по numpy Продолжаем изучать библиотеку numpy Объединение массивов в numpy Приведём несколько функций, позволяющих объединять массивы. Первый пример - объединение массивов в массив с более высокой размерностью. #!/usr/bin/python3
import numpy as np
# объединение массивов
a1 = np.array([[1, 2, 3], [4, 5, 6]])
a2 = np.array([[7, 8, 9], [10, 11, 12]])
a3 = np.array([[13, 14, 15], [16, 17, 18]])
a = np.stack((a1, a2, a3))
print(a) Результат выполнения программы [[[ 1  2  3]
 [ 4  5  6]]
[[ 7  8  9]
 [10 11 12]]
[[13 14 15]
 [16 17 18]]] Следующие пример позволяют объединять массивы вдоль осей #!/usr/bin/python3
import numpy as np
# объединение массивов
a1 = np.array([[1, 2, 3], [4, 5, 6]])
a2 = np.array([[7, 8, 9], [10, 11, 12]])
a3 = np.array([[13, 14, 15], [16, 17, 18]])
a = np.concatenate((a1, a2,
Оглавление

Доброго времени суток, читатели, зрители моего канала 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
# объединение массивов
a1 = np.array([[1, 2, 3], [4, 5, 6]])
a2 = np.array([[7, 8, 9], [10, 11, 12]])
a3 = np.array([[13, 14, 15], [16, 17, 18]])
a = np.stack((a1, a2, a3))
print(a)

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

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

[[ 7  8  9]
 [10 11 12]]

[[13 14 15]
 [16 17 18]]]

Следующие пример позволяют объединять массивы вдоль осей

#!/usr/bin/python3
import numpy as np
# объединение массивов
a1 = np.array([[1, 2, 3], [4, 5, 6]])
a2 = np.array([[7, 8, 9], [10, 11, 12]])
a3 = np.array([[13, 14, 15], [16, 17, 18]])
a = np.concatenate((a1, a2, a3), 0)
b = np.concatenate((a1, a2, a3), 1)
print(a)
print()
print(b)

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

[[ 1  2  3]
[ 4  5  6]
[ 7  8  9]
[10 11 12]
[13 14 15]
[16 17 18]]

[[ 1  2  3  7  8  9 13 14 15]
[ 4  5  6 10 11 12 16 17 18]]

В программе выше массивы объединяются по двум осям: 0 и 1.

Ещё о линейной алгебре в numpy

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

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

#!/usr/bin/python3
# скалярное произведение векторов
import numpy as np
a = np.array([3, 4, 5])
b = np.array([1, 2, 3])
print(np.vdot(a, b))

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

26

Внешнее произведение векторов несколько сложнее. Это матрица. Она формируется последовательным умножением элементов одного одномерного массива на элементы второго.

#!/usr/bin/python3
# внешнее произведение векторов
import numpy as np
a = np.array([3, 4, 5])
b = np.array([1, 2, 3])
print(np.outer(a, b))

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

[[ 3  6  9]
[ 4  8 12]
[ 5 10 15]]

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

#!/usr/bin/python3
# собственный вектор матрицы
import numpy as np
a = np.array([[3, 4, 5], [1, 2, 3], [6, 7, 8]])
b = np.linalg.eig(a)
print(b)

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

(array([ 1.36589105e+01, 7.50522543e-16, -6.58910532e-01]), array([[-0.48771247, -0.40824829, -0.15449116],
[-0.25654923, 0.81649658, -0.71325965],
[-0.83445733, -0.40824829, 0.68366158]]))

Результат состоит из двух массивов (кортеж). Столбцы второго массива и есть собственные вектора матрицы. Элементы же первого массива собственные значение соответствующих векторов.

Статистика в numpy

Перечислим несколько основных функций numpy, имеющих отношение к статистике: sum - сумма элементов массива или вдоль оси, mean - среднее, std - стандартное отклонение, var - дисперсия, min, max - минимальный и максимальный элементы, argmin, argmax - индексы минимальных и максимальных элементов, cumsum - накопительная сумма массива и сумма по осям, cumprod - накопительное произведение элементов массива и по осям, percentile - вычисление процентиля элемента массива, median -медианное среднее.

#!/usr/bin/python3
import numpy as np
a = np.array([[1, 2, 3], [4, 3, 6], [7, 8, 1]])
print(np.sum(a, axis=0))
print(np.cumsum(a))
print(np.argmax(a))
print(np.median(a))
print(np.percentile(a, 90))

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

[12 13 10]
[ 1  3  6 10 13 19 26 34 35]
7
3.0
7.2

Отмечу, что процентиль, это значение, которое отсекает n-й процент элементов массива, если массив отсортирован. Функция percentile() вторым параметром может содержать целый массив значений в промежутке от 0 дол 100. Например np.percentile(a, [90, 20]).

Ну, пока всё!

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

Не нужно стесняться своего кода, нужно стесняться чужого кода в своей программе
Не нужно стесняться своего кода, нужно стесняться чужого кода в своей программе