Создание массивов в NumPy

Помимо использования базового конструктора ndarray, массивы ndarray также можно создавать следующими способами.

numpy.empty

Метод numpy.empty используется для создания неинициализированного массива с указанной формой и типом данных (dtype):

numpy.empty(shape, dtype = float, order = 'C')

Описание параметра:

Параметр Описание
shape Форма массива
dtype Тип данных, необязательно
order Есть два варианта, "C" и "F", которые обозначают соответственно построчный и постолбцовый порядок хранения элементов в памяти компьютера.

Ниже приведён пример создания пустого массива:

Пример

import numpy as np x = np.empty([3,2], dtype = int) print (x)

Результат вывода:

[[ 6917529027641081856  5764616291768666155]
 [ 6917529027641081859 -5764598754299804209]
 [          4497473538      844429428932120]]

Примечание− Элементы массива являются случайными значениями, потому что они не инициализированы.

numpy.zeros

Создайте массив указанного размера, элементы которого заполнены 0:

numpy.zeros(shape, dtype = float, order = 'C')

Описание параметра:

Параметр Описание
shape Форма массива
dtype Тип данных, необязательно
order 'C' для массивов в стиле C с построчным порядком, или 'F' для массивов в стиле FORTRAN с постолбцовым порядком

Пример

import numpy as np # По умолчанию используется float x = np.zeros(5) print(x) # Установить тип как целочисленный y = np.zeros((5,), dtype = int) print(y) # Пользовательский тип z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')]) print(z)

Результат вывода:

[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
 [(0, 0) (0, 0)]]

numpy.ones

Создать массив заданной формы, все элементы которого заполнены 1:

numpy.ones(shape, dtype = None, order = 'C')

Описание параметра:

Параметр Описание
shape Форма массива
dtype Тип данных, необязательно
order 'C' для массивов в стиле C с построчным порядком, или 'F' для массивов в стиле FORTRAN с постолбцовым порядком

Пример

import numpy as np # По умолчанию используется float x = np.ones(5) print(x) # Пользовательский тип x = np.ones([2,2], dtype = int) print(x)

Результат вывода:

[1. 1. 1. 1. 1.]
[[1 1]
 [1 1]]

numpy.zeros_like

numpy.zeros_like используется для создания массива с той же формой, что и заданный массив, элементы которого заполнены 0.

И numpy.zeros, и numpy.zeros_like используются для создания массива заданной формы, в котором все элементы равны 0.

Разница между ними в том, что numpy.zeros может напрямую задавать форму создаваемого массива, тогда как numpy.zeros_like создаёт массив той же формы, что и заданный массив.

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)

Описание параметра:

Параметр Описание
a Заданный массив, форму которого нужно повторить
dtype Тип данных создаваемого массива
order Порядок хранения массива в памяти. Возможные значения — 'C' (по строкам) или 'F' (по столбцам), по умолчанию — 'K' (сохраняет порядок хранения входного массива)
subok Разрешено ли возвращать подклассы. Если True, возвращается объект подкласса; в противном случае возвращается массив с тем же типом данных и порядком хранения, что и массив a
shape Форма создаваемого массива. Если не указана, по умолчанию используется форма массива a.

Создайте массив той же формы, что и arr, со всеми элементами, равными 0:

Пример

import numpy as np # Создайте двумерный массив 3x3 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Создайте массив той же формы, что и arr, со всеми элементами, равными 0 zeros_arr = np.zeros_like(arr) print(zeros_arr)

Результат вывода:

[[0 0 0]
 [0 0 0]
 [0 0 0]]

numpy.ones_like

numpy.ones_like используется для создания массива той же формы, что и заданный массив, с элементами массива, заполненными 1.

И numpy.ones, и numpy.ones_like используются для создания массива заданной формы, в котором все элементы равны 1.

Разница между ними состоит в том, что numpy.ones может напрямую задавать форму создаваемого массива, тогда как numpy.ones_like создаёт массив той же формы, что и заданный массив.

numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)

Описание параметра:

Параметр Описание
a Заданный массив, форму которого нужно повторить
dtype Тип данных создаваемого массива
order Порядок хранения массива в памяти. Возможные значения — 'C' (по строкам) или 'F' (по столбцам), по умолчанию — 'K' (сохраняет порядок хранения входного массива)
subok Разрешено ли возвращать подклассы. Если True, возвращается объект подкласса; в противном случае возвращается массив с тем же типом данных и порядком хранения, что и массив a
shape Форма создаваемого массива. Если не указана, по умолчанию используется форма массива a.

Создать массив той же формы, что и arr, все элементы которого равны 1:

Пример

import numpy as np # Создайте двумерный массив 3x3 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Создать массив той же формы, что и arr, все элементы которого равны 1 ones_arr = np.ones_like(arr) print(ones_arr)

Результат вывода:

[[1 1 1]
 [1 1 1]
 [1 1 1]]
Другие расширения