Saltar al contenido

string representación de un numpy array con comas separando sus elementos

Este artículo ha sido aprobado por nuestros expertos así aseguramos la veracidad de nuestra esta división.

Solución:

Intenta usar repr

>>> import numpy as np
>>> points = np.array([[-468.927,  -11.299,   76.271, -536.723],
...                    [-429.379, -694.915, -214.689,  745.763],
...                    [   0.,       0.,       0.,       0.   ]])
>>> print repr(points)
array([[-468.927,  -11.299,   76.271, -536.723],
       [-429.379, -694.915, -214.689,  745.763],
       [   0.   ,    0.   ,    0.   ,    0.   ]])

Si planea usar grandes matrices numpy, configure np.set_printoptions(threshold=np.nan) primero. Sin eso, el array la representación se truncará después de aproximadamente 1000 entradas (por defecto).

>>> arr = np.arange(1001)
>>> print repr(arr)
array([   0,    1,    2, ...,  998,  999, 1000])

Por supuesto, si tiene matrices tan grandes, esto comienza a ser menos útil y probablemente debería analizar los datos de otra manera que no sea solo mirarlos y hay mejores formas de persistir un numpy array que guardarlo es repr a un archivo…

Ahora, en numpy 1.11, hay numpy.array2string:

In [279]: a = np.reshape(np.arange(25, dtype='int8'), (5, 5))

In [280]: print(np.array2string(a, separator=', '))
[[ 0,  1,  2,  3,  4],
 [ 5,  6,  7,  8,  9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24]]

Comparado con repr de @mgilson (muestra “array()” y dtype):

In [281]: print(repr(a))
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]], dtype=int8)

PD Todavía necesito np.set_printoptions(threshold=np.nan) para grande array.

Otra forma de hacerlo, que es particularmente útil cuando un objeto no tiene un método __repr__(), es emplear el módulo pprint de Python (que tiene varias opciones de formato). Esto es lo que parece, por ejemplo:

>>> import numpy as np
>>> import pprint
>>>
>>> A = np.zeros(10, dtype=np.int64)
>>>
>>> print(A)
[0 0 0 0 0 0 0 0 0 0]
>>>
>>> pprint.pprint(A)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *