Размеры и NumPy массив

В настоящее время я пытаюсь изучить Numpy и Python. Учитывая следующий массив:

import numpy as N
a = N.array([[1,2],[1,2]])

есть ли функция, которая возвращает размеры a (e.г. a-массив 2 на 2)?

size() возвращает 4, и это не очень помогает.

6 ответов


Это .shape:

ndarray.формы
Кортеж измерений массива.

таким образом:

>>> a.shape
(2, 2)

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