Функция numpy zeros_like() определена в numpy и мы можем создавать многомерные массивы и получать другую математическую статистику с помощью numpy.
Что такое функция numpy.zeros_like() в Python?
Функция np.zeros_like() принимает четыре аргумента, два из которых являются обязательными, а два — необязательными, и возвращает массив нулей той же формы и типа, что и заданный массив.
Чтобы создать массив, заполненный нулями, с заданной формой и типом в Python, используйте функцию numpy.zeros_like(). Форма и тип данных определяют те же атрибуты возвращаемого массива.
Синтаксис
|
1 |
numpy.zeros_like(array, dtype, order, subok) |
Параметры
Функция zeros_like() принимает четыре параметра, два из которых являются необязательными.
- Первый параметр — это input array.
- Второй — это параметр subok, который является необязательным; он принимает логические значения, и если оно истинно, вновь созданный массив будет подклассом основного массива, а если ложно, то будет массивом базового класса.
- Третий параметр — order, представляющий порядок в памяти.
- Четвертый параметр — dtype, является необязательным и по умолчанию имеет значение float. Это тип данных возвращаемого массива.
Возвращаемое значение
Функция zeros_like() возвращает массив со значениями элементов в виде нулей.
Примеры программ с использованием метода zeros_like() в Python
Рассмотрим примеры программирования с функцией zeros_like().
Пример 1
Напишем программу, показывающую работу функции zeros_like() в Python.
|
1 2 3 4 5 6 7 |
import numpy as np arr1 = np.arange(9).reshape(3, 3) print("Original arr1 : \n", arr1) arr2 = np.zeros_like(arr1, float) print("\nMatrix arr2 : \n", arr2) |
Выход
|
1 2 3 4 5 6 7 8 9 |
Original arr1 : [[0 1 2] [3 4 5] [6 7 8]] Matrix arr2 : [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]] |
В приведенном выше примере мы видим, что, передавая массив 3×3, мы возвращаем новый массив со значениями всех его элементов равными 0, сохраняя форму и размер исходного массива.
Пример 2
Напишем программу, которая берет матрицу 4×4, а затем применяет функцию zeros_like().
|
1 2 3 4 5 6 7 |
import numpy as np arr1 = np.arange(16).reshape(4, 4) print("Original arr1 : \n", arr1) arr2 = np.zeros_like(arr1, float) print("\nMatrix arr2 : \n", arr2) |
Выход
|
1 2 3 4 5 6 7 8 9 10 11 |
Original arr1 : [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] Matrix arr2 : [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] |
В приведенном выше примере мы видим, что, передавая массив 4 × 4, мы возвращаем новый массив со значениями всех его элементов равными 0, сохраняя форму и размер исходного массива.
Отличия numpy.zeros_like() от numpy.zeros()
Функция numpy zeros_like() требует больше времени для создания массива нулей, чем функция numpy.zeros(). Функция numpy zeros_like() требует дополнительного времени для копирования.
Функции np.zeros(), np.ones(), np.empty() скомпилированы ранее. Функция np.empty_like() была добавлена для удобства, она просто рисует форму и информацию о типе из ее ввода.
Функция np.zeros_like() была написана с большим вниманием к простоте обслуживания программирования(повторное использование функции np.empty_like()), чем к скорости.
Современная операционная система выделяет память виртуально. Например, память предоставляется процессу только при первом использовании. Метод zeros() получает память от операционной системы, чтобы ОС обнуляла ее при первом использовании. Функция zeros_like(), с другой стороны, сама заполняет выделенную память нулями.
