What is the difference between ndarray and array in numpy?
numpy.array
is just a convenience function to create an ndarray
; it is not a class itself.
You can also create an array using numpy.ndarray
, but it is not the recommended way. From the docstring of numpy.ndarray
:
Arrays should be constructed using
array
,zeros
orempty
... The parameters given here refer to a low-level method (ndarray(...)
) for instantiating an array.
Most of the meat of the implementation is in C code, here in multiarray, but you can start looking at the ndarray interfaces here:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
numpy.array
is a function that returns a numpy.ndarray
. There is no object type numpy.array.
Just a few lines of example code to show the difference between numpy.array and numpy.ndarray
Warm up step: Construct a list
a = [1,2,3]
Check the type
print(type(a))
You will get
<class 'list'>
Construct an array (from a list) using np.array
a = np.array(a)
Or, you can skip the warm up step, directly have
a = np.array([1,2,3])
Check the type
print(type(a))
You will get
<class 'numpy.ndarray'>
which tells you the type of the numpy array is numpy.ndarray
You can also check the type by
isinstance(a, (np.ndarray))
and you will get
True
Either of the following two lines will give you an error message
np.ndarray(a) # should be np.array(a)isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))