def rank(a):
warnings.warn(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>",<EOL>VisibleDeprecationWarning)<EOL>try:<EOL><INDENT>return a.ndim<EOL><DEDENT>except AttributeError:<EOL><INDENT>return asarray(a).ndim<EOL><DEDENT>
Return the number of dimensions of an array.

If `a` is not already an array, a conversion is attempted.
Scalars are zero dimensional.

.. note::
    This function is deprecated in NumPy 1.9 to avoid confusion with
    `numpy.linalg.matrix_rank`. The ``ndim`` attribute or function
    should be used instead.

Parameters
----------
a : array_like
    Array whose number of dimensions is desired. If `a` is not an array,
    a conversion is attempted.

Returns
-------
number_of_dimensions : int
    The number of dimensions in the array.

See Also
--------
ndim : equivalent function
ndarray.ndim : equivalent property
shape : dimensions of array
ndarray.shape : dimensions of array

Notes
-----
In the old Numeric package, `rank` was the term used for the number of
dimensions, but in Numpy `ndim` is used instead.

Examples
--------
>>> np.rank([1,2,3])
1
>>> np.rank(np.array([[1,2,3],[4,5,6]]))
2
>>> np.rank(1)
0