numpy.asanyarray
numpy.asanyarray(a, dtype=None, order=None)
Функция asanyarray() преобразует последовательность в массив NumPy, не приводя подклассы ndarray к базовому классу.
-
- a - некоторая последовательность
- Входные данные которые могут быть преобразованы в массив: списки и кортежи, списки списков и кортежи кортежей, списки кортежей и кортежи списков, а так же кортежи или списки других массивов NumPy.
- dtype - тип данных NumPy (необязательный)
- Определяет тип данных выходного массива.
- order - 'C' или 'F' (необязательный)
- Этот параметр определяет в каком порядке массивы должны храниться в памяти: строчном C-стиле или столбчатом стиле Fortran. По умолчанию установлен в 'C'.
-
- результат - массив NumPy
- Интерпретация входных данных
a
, как массива NumPy. Еслиa
является объектомndarray
или его подклассом, то он не копируется и возвращается в неизменном виде (эквивалентноarray(a, dtype, copy=False, order=order, subok=True)
).
Примеры
>>> import numpy as np
>>>
>>> # Преобразование последовательностей в массив NumPy:
... a = [1, 2, 3]
>>> np.asanyarray(a)
array([1, 2, 3])
>>>
>>>
>>> # Массивы NumPy не копируются:
... a = np.array([1, 2, 3])
>>> b = np.asanyarray(a)
>>>
>>> b is a # Данные в 'b' физически те же что и в 'a'
True
>>> a[0] = 77 # Изменения в массиве 'a'
>>> a
array([77, 2, 3])
>>>
>>> b # Повлекут за собой изменения в массиве 'b'
array([77, 2, 3])
>>>
>>>
>>> # Копирование происходит только
... # при несоответствии типов данных массивов
... a = np.array([1,2,3], dtype = np.int8)
>>> b = np.asanyarray(a, dtype = np.int8)
>>> b is a
True
>>>
>>> b = np.asanyarray(a, dtype = np.float32)
>>> b is a
False
>>>
>>>
>>> # Подкласс будет возвращен как есть:
... a = np.mat('1 1; 2 2')
>>> a
matrix([[1, 1],
[2, 2]])
>>>
>>> b = np.asanyarray(a)
>>> b
matrix([[1, 1],
[2, 2]])
>>>
>>>
>>> # Список массивов преобразуется в массив
... a = np.array([1, 1])
>>> b = np.array([2, 2])
>>> c = [a, b]
>>>
>>> d = np.asanyarray(c)
>>> d
array([[1, 1],
[2, 2]])