# NumPy shape()

The `shape()` method returns the shape of an array i.e. the number of elements in each dimension.

### Example

``````import numpy as np

array = np.array([[0, 1], [2, 3]])

# return shape of the array
shapeOfArray = np.shape(array)

print(shapeOfArray)

# Output : (2, 2)``````

## shape() Syntax

The syntax of `shape()` is:

``numpy.shape(array)``

## shape() Argument

The `shape()` method takes a single argument:

• `array` - an array whose shape is to be determined

## shape() Return Value

The `shape()` method returns the shape of an array as a tuple.

## Example 1: Shape of Arrays

``````import numpy as np

# create 1D and 2D arrays
array1 = np.array([0, 1, 2, 3])
array2 = np.array([[8, 9]])

# shape of array1
shape1 = np.shape(array1)

print('Shape of the first array : ', shape1)

# shape of array2
shape2 = np.shape(array2)

print('Shape of the second array : ', shape2)``````

Output

```Shape of the first array :  (4,)
Shape of the second array :  (1, 2)```

## Example 2: Shape of Array of Tuples

``````import numpy as np

# array of tuples
array1 = np.array([(0, 1), ( 2, 3)])

dataType = [('x', int), ('y', int)]

# dtype sets each tuple as an individual array element
array2 = np.array([(0, 1), ( 2, 3)], dtype = dataType)

# shape of array1
shape1 = np.shape(array1)

print('Shape of first array : ', shape1)

# shape of array2
shape2 = np.shape(array2)

print('Shape of second array : ', shape2)``````

Output

```Shape of first array :  (2, 2)
Shape of second array :  (2, )```

Here, array1 and array2 are 2-dimensional arrays with tuples as their elements. The shape of array1 is (2, 2).

However, the shape of array2 is (2, ), which is one dimensional.

This is because we've passed the `dtype` argument, which restricts the structure of array2.

array2 contains two elements, each of which is a tuple with two integer values, but each element is treated as a single entity with two fields `x` and `y`.

Therefore, array2 is one dimensional with two rows and one column.