Currently in docstring the description of dtype argument for np.array says
this:

## Advertising

dtype : data-type, optional
> The desired data-type for the array. If not given, then the type will
> be determined as the minimum type required to hold the objects in the
> sequence. This argument can only be used to 'upcast' the array. For
> downcasting, use the .astype(t) method.
>
But I found this description somewhat misleading for integer types. Is this
generally true that "the type will
be determined as the minimum type required to hold the objects in the
sequence."?
As I always thought for integer arrays first `np.int_` is assumed and if it
is not enough the bigger dtype s are used, and finally falling to `object`
dtype. This question comes from this discussion:
https://github.com/numba/numba/issues/2729.
Also somewhat (un)related (but I was always curious), why `float` type was
chosen as a default for dtype?
>>> np.array([]).dtype
dtype('float64')
>>> np.ones([]).dtype
dtype('float64')
Why np.int_ was not chosen and will this change be a good idea (in general,
without taking into account backward compatibility :-))? There is some
discussion here: https://github.com/numpy/numpy/issues/10405.
-----------------
p.s.: For some constructors the signature looks as follows (in IPython
console):
>>> np.zeros?
Docstring:
zeros(shape, dtype=float, order='C')
Return a new array of given shape and type, filled with zeros.
>>> np.empty?
Docstring:
empty(shape, dtype=float, order='C')
Return a new array of given shape and type, without initializing entries.
But for `ones` the dtype is none instead of float and looks different:
>>> np.ones?
Signature: np.ones(shape, dtype=None, order='C')
Docstring:
Return a new array of given shape and type, filled with ones.
-----------------
With kind regards,
-gdg

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion