If there is a chance that the input might be a quantity, it should be `np.asanyarray()` rather than `np.array`, otherwise the preferred way to do this is `np.asarray()`, which will return the original array if it is an array and create one otherwise.  Using `np.array()` returns a new _copy_ of the original array.

For small, infrequently used  arrays this might not matter much, but for large ones or large amounts of small ones, the overhead might be noticed.

Example:
    In [1]: a = np.array([1,2,3])
    In [2]: b = np.array(a)
    
    # b is not a
    In [3]: id(a) == id(b)
    Out[3]: False
    
    # asarray() is a
    In [4]: id(a) == id(np.asarray(a))
    Out[4]: True
    
    # b is not a view of a, we can change b and not change a
    In [5]: a, b
    Out[5]: (array([1, 2, 3]), array([1, 2, 3]))
    
    In [6]: b[1]=10
    
    In [7]: a,b
    Out[7]: (array([1, 2, 3]), array([ 1, 10,  3]))