Размеры и NumPy массив
В настоящее время я пытаюсь изучить Numpy и Python. Учитывая следующий массив:
import numpy as N
a = N.array([[1,2],[1,2]])
есть ли функция, которая возвращает размеры a
(e.г. a-массив 2 на 2)?
size()
возвращает 4, и это не очень помогает.
6 ответов
import numpy as np
>>> np.shape(a)
(2,2)
также работает, если вход не массив numpy, а список списков
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
или кортеж кортежей
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
первый:
по соглашению, в мире Python, ярлык для numpy
is np
, так:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
второй:
В Numpy,измерение, оси/осей, формы связаны и иногда аналогичные понятия:
измерение
на Математика/Физика, размерность или размерность неофициально определяется как минимальное количество координат, необходимых для указания любых точка в пространстве. Но в включает в себя, согласно numpy doc, это то же самое, что ось / оси:
в numpy размеры называются осями. Количество осей-ранг.
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
оси/осей
на nth координата для индексирования array
в Numpy. А многомерные массивы могут иметь по одному индексу на ось.
In [4]: a[1,0] # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3 # which results in 3 (locate at the row 1 and column 0, 0-based index)
формы
описывает сколько данных (или диапазон) вдоль каждой оси.
In [5]: a.shape
Out[5]: (2, 2) # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
вы можете использовать .форма
In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3
на shape
метод требует, чтобы a
быть Numpy ndarray. Но Numpy также может вычислить форму итераций чистых объектов python:
np.shape([[1,2],[1,2]])
можно использовать .ndim
для измерения и .shape
чтобы узнать точное измерение
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])
var.ndim
# displays 2
var.shape
# display 6, 2
вы можете изменить размер, используя .reshape
функции
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)
var.ndim
#display 2
var.shape
#display 3, 4