Продолжая последний пост о Numpy, давайте рассмотрим еще несколько нюансов в использовании функций массива Numpy.
np.zeros: возвращает новый массив заданной формы и типа, заполненный нулями.
import numpy as np a = np.zeros((2, 3), dtype=np.int32) print(a) # Output: # [[0 0 0] # [0 0 0]]
np.ones: возвращает новый массив заданной формы и типа, заполненный единицами.
import numpy as np a = np.ones((2, 3), dtype=np.int32) print(a) # Output: # [[1 1 1] # [1 1 1]]
Функции zeros() и one() используются для создания массивов того же размера, что и существующий массив, но заполненных нулями или единицами соответственно. Это может быть полезно, когда вам нужно выполнить арифметические операции над массивами разного размера.
import numpy as np # create a 2x2 array of zeros of the same size as an existing array arr = np.array([[1, 2], [3, 4]]) arr_zeros_like = np.zeros_like(arr) print(arr_zeros_like) # Output: [[0 0] # [0 0]]
np.arange: возвращает массив с равномерно распределенными значениями в пределах заданного интервала. Это интересный способ быстро генерировать массивы нечетных или четных чисел.
import numpy as np a = np.arange(0, 10, 2) # Starting from 0 to 10, space each value with a gap of 2 print(a) # Output: [0 2 4 6 8]
По умолчанию он может генерировать только одномерный массив. Но если кто-то хочет создать 2D-массив из вывода, есть косвенный способ, использующий метод reshape.
import numpy as np # create a 1D array with 12 elements arr_1d = np.arange(12) # reshape the 1D array to a 2D array with shape (3, 4) arr_2d = arr_1d.reshape(3, 4) print(arr_2d)
array.sum: возвращает сумму всех элементов массива.
import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) print(a.sum()) # Output: 21
Интересно, что функция array.sum() возвращает сумму всех элементов входного массива независимо от количества измерений.
import numpy as np a = np.array([[1, 2], [3, 4]]) print(np.sum(a)) # Output: 10
Функция sum() также предоставляет необязательный параметр axis, который можно использовать для указания оси или осей, вдоль которых должно выполняться суммирование.
Когда параметр оси указан, функция возвращает массив с уменьшенной размерностью.
import numpy as np a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(np.sum(a, axis=0)) # Output: array([[ 6, 8], # [10, 12]])
Здесь параметр axis=0 указывает, что сумма должна браться по первому измерению входного массива, в результате чего получается массив (2, 2).
array.mean: возвращает среднее значение всех элементов в массиве.
import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) print(a.mean()) # Output: 3.5
Вот пример с двумерным массивом.
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) mean = arr.mean() print(mean) # Output: 3.5
Подобно функции array.sum, array.mean также принимает параметр оси.
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) mean_row = arr.mean(axis=1) print(mean_row) # Output: [2. 5.]
Результирующий массив имеет форму (2,) со средним значением каждой строки входного массива.
Основы Numpy, часть 2 — https://medium.com/@bigfundu/numpy-basics-2-1b9980defe8b
Основы Numpy, часть 1 — https://medium.com/@bigfundu/numpy-basics-1-1f367599de39