Размеры массива - PullRequest
       20

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

321 голосов
/ 17 июня 2010

Я сейчас пытаюсь выучить Numpy и Python.Учитывая следующий массив:

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

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

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

Ответы [ 6 ]

437 голосов
/ 17 июня 2010

Это .shape:

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

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

>>> a.shape
(2, 2)
55 голосов
/ 07 декабря 2016

Первый:

По соглашению, в мире Python ярлык для numpy равен np, поэтому:

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4]])

Второй:

In Numpy, измерение , ось / оси , форма связаны и иногда аналогичные понятия:

измерение

В Математика / физика , размерность или размерность неофициально определяется как минимальное количество координат, необходимое для указания любой точки в пространстве.Но в 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)

shape

описывает, сколько данных (или диапазон) вдоль каждой доступной оси.

In [5]: a.shape
Out[5]: (2, 2)  # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
44 голосов
/ 12 октября 2015
import numpy as np   
>>> np.shape(a)
(2,2)

Также работает, если входными данными является не пустой массив, а список списков

>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)

Или кортеж из кортежей

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
13 голосов
/ 25 августа 2017

Вы можете использовать. Форма

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
7 голосов
/ 15 августа 2018

Вы можете использовать .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
6 голосов
/ 15 июня 2017

Метод shape требует, чтобы a был Numpy ndarray.Но Numpy также может вычислять форму итераций чистых объектов Python:

np.shape([[1,2],[1,2]])
...