numpy.array

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

Функция array() создает массив NumPy.

Параметры:
object - подобный массиву объект
Список или кортеж, а так же лбая функция или объект с методом, возвращаеющие список или кортеж.
dtype - тип данных NumPy (необязательный)
Определяет тип данных выходного массива.
copy - False или True (необязательный)
Если этот параметр установлен в True (по умолчанию), то объект копируется. В противном случае копирование происходит только если: метод __array__ объекта возвращает копию, если object является вложенной последовательностью, если треуется доступ к определенным параметрам массива (dtype, order и т.д.)
order - 'K', 'A', 'C' или 'F' (необязательный)
Этот параметр определяет в каком порядке массивы должны храниться в памяти: строчном C-стиле или столбчатом стиле Fortran. Если object не является массивом NumPy, то созданный массив будет находиться в памяти в строковом С порядке, если указать флаг 'F', то будет храниться в столбчатом порядке 'Fortran'. Если object - это массив NumPy, то флаг 'K' либо сохраняет порядок исходного массива либо устанавливает самый близкий по структуре; флаг 'A' установит макет памяти выходного массива в 'F' если массив object является смежным со столбчатым стилем Fortran, в противном случае макет памяти будет установлен в 'C'. По умолчанию флаг установлен в значение 'K'.
subok- True или False (необязательный)
Если параметр установлен в значение True (установлено по умодчанию в False), то выходной массив будет использовать тип подкласса массива object, если False то тип массива базового класса.
ndmin- целое число (необязательный)
Определяет минимальное количество измерений результирующего массива, которое, по мере необходимости, будет прикреплено к его форме для удовлетворения этого требования.
Возвращает:
результат - массив NumPy
Массив удовлетворяющий всем указанным требованиям.
Смотрите так же: empty, empty_like, zeros, zeros_like, ones, ones_like, full, full_like

Замечание

Довольно большое значение имеет параметр order, который отвечает за порядок хранения массива в памяти. В некоторых ситуациях этот порядок может изменяться, что в редких случаях может приводить к ошибкам. Например при выполении транспонирования массива порядок 'C' может измениться на порядок 'F':

>>> a = np.array([[1, 2], [1, 2]])
>>> a
array([[1, 2],
       [1, 2]])
>>> 
>>> b = a.T    #  Присвоим массиву 'b' транспонированную матрицу 'a' 
>>> b
array([[1, 1],
       [2, 2]])
>>> 
>>> #  Теперь проверим порядок хранения в памяти
... 
>>> a.flags
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False
>>> 
>>> b.flags
  C_CONTIGUOUS : False
  F_CONTIGUOUS : True
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False

Как видно, массив a до транспонирования имел C_CONTIGUOUS : True и F_CONTIGUOUS : False т.е. был организован в C-стиле, после транспонирования он сменился на стиль Fortran: C_CONTIGUOUS : False и F_CONTIGUOUS : True.

Если параметр order установлен в значение 'A' и в качестве object указан массив с порядком отличным от 'F' или 'C', то результирующий массив не всегда будет иметь ожидаемый флаг 'C'. В редких случаях это так же может приводить к ошибкам.



Примеры

>>> import numpy as np
>>> 
>>> np.array([1, 2, 3, 4, 5, 6, 7])
array([1, 2, 3, 4, 5, 6, 7])
>>> 
>>>
>>> #  Если элементы разного типа, то все они приводятся к наиболее общему:
... np.array([1, 1, 2, 2, 3.14, 3.14])
array([ 1.  ,  1.  ,  2.  ,  2.  ,  3.14,  3.14])
>>> 
>>> np.array([1+1j, 1+1j, 2, 2, 3.14, 3.14])
array([ 1.00+1.j,  1.00+1.j,  2.00+0.j,  2.00+0.j,  3.14+0.j,  3.14+0.j])
>>> 
>>>
>>> np.array([[1, 2], [3, 4]])    #  Двумерный массив
array([[1, 2],
       [3, 4]])
>>> #  Создание трехмерного массива
>>> np.array([[[1, 1], [2, 2]],    
...           [[3, 3], [4, 4]],
...           [[5, 5], [6, 6]]])
array([[[1, 1],
        [2, 2]],

       [[3, 3],
        [4, 4]],

       [[5, 5],
        [6, 6]]])
>>>
>>>
>>> #  Создание массива у которого минимум 2 измерения:
... a = np.array([1, 3, 5], ndmin = 2)
>>> a
array([[1, 3, 5]])
>>>
>>>
>>> #  Указание типа данных массива:
... np.array([[1, 2], [3, 4]], dtype = complex)
array([[ 1.+0.j,  2.+0.j],
       [ 3.+0.j,  4.+0.j]])
>>> 
>>>
>>> #  Создание структурированного массива:
... y = np.array([(1, 1), (2, 4), (3, 9), (4, 16)], dtype = [('x','i2'),('f_x','f4')])
>>> y['x']
array([1, 2, 3, 4], dtype=int16)
>>> y['f_x']
array([  1.,   4.,   9.,  16.], dtype=float32)
>>> 
>>> 
>>> #  Создание массивов с использованием подклассов:
... np.array(np.mat('1 1 1; 2 2 2; 3 3 3'))
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3]])
>>> 
>>> np.array(np.mat('1 1 1; 2 2 2; 3 3 3'), subok = True)
matrix([[1, 1, 1],
        [2, 2, 2],
        [3, 3, 3]])