Argumento “fuera” de piso y rechoncho

De los documentos de NumPy para ceil , la función numpy.ceil toma dos argumentos, el segundo está out . Los documentos no dicen qué hace este parámetro de out , pero supongo que puede establecer el tipo de salida que devuelve esta función, pero no puedo hacer que funcione:

 In [107]: np.ceil(5.5, 'int') --------------------------------------------------------------------------- TypeError Traceback (most recent call last)  in () ----> 1 np.ceil(5.5, 'int') TypeError: return arrays must be of ArrayType In [108]: np.ceil(5.5, 'int64') --------------------------------------------------------------------------- TypeError Traceback (most recent call last)  in () ----> 1 np.ceil(5.5, 'int64') TypeError: return arrays must be of ArrayType 

¿Es posible usar este argumento para hacer que np.ceil devuelva un entero?

Gracias.

out es la matriz de salida (que debe tener la misma forma que la entrada).

Si lo construyes para que sea del tipo de dtype deseado, ese será el dtype que obtendrás:

 >>> arr = np.array([5.5, -7.2]) >>> out = np.empty_like(arr, dtype=np.int64) >>> np.ceil(arr, out) array([ 6, -7], dtype=int64) >>> out array([ 6, -7], dtype=int64) 

np.ceil es uno de los ufuncs . La documentación general para esta categoría es:

 op(X, out=None) Apply op to X elementwise Parameters ---------- X : array_like Input array. out : array_like An array to store the output. Must be the same shape as `X`. Returns ------- r : array_like `r` will have the same shape as `X`; if out is provided, `r` will be equal to out. 

out y r son diferentes formas de obtener la salida de la función. Lo más simple es dejar que la función devuelva el valor. Pero a veces es posible que desee darle la matriz que llenará. Controlar el dtype es una razón para usarlo. Otra es conservar la memoria “reutilizando” una matriz que ya existe.

La matriz devuelta por np.ceil también se puede convertir al tipo deseado, por ejemplo, np.ceil(x).astype('int') .

No especifica el tipo de retorno. Prueba esto

 np.int64(np.ceil(5.5)) np.int(np.ceil(5.5)) np.int(np.ceil(-7.2))