Parece algo trivial para mí, pero todavía me falta una manera eficiente y "limpia" de insertar una serie de elementos pertenecientes a numpy array (como aa[:,:]
) en una cadena formateada para ser impreso/escrito. De hecho las sintaxis de especificación extendidos elemento por elemento gustan:cadena de serie formateada de numpy array elements
formattedline= '%10.6f %10.6f %10.6f' % (aa[ii,0], aa[ii,1], aa[ii,2])
file1.write(formattedline+'\n')
están trabajando.
Pero no he encontrado ninguna otra solución más corto, debido a que:
formattedline= '%10.6f %10.6f %10.6f' % (float(aa[ii,:]))
file1.write(formattedline+'\n')
da por supuesto: TypeError: only length-1 arrays can be converted to Python scalars
o:
formattedline= '%10.6f %10.6f %10.6f' % (aa[ii,:])
file1.write(formattedline+'\n')
da: TypeError: float argument required, not numpy.ndarray
. He tratado con iteradores, pero sin éxito.
Por supuesto, esto es interesante cuando hay varios elementos que se van a imprimir.
Así que: ¿Cómo puedo combinar iteración sobre matriz numpy y secuencia de la manera formato?
¡eso es bueno y funciona! :) ... así que la segunda solución es en realidad iterar sobre la matriz numpy, muy agradable. – gluuke
... pero aún así, agregando una cadena: 'formattedline = '% 4s% 10.6f% 10.6f% 10.6f'% (string1, (tuple (aa [ii,:])))' da 'TypeError: argumento float requerido, no tuple' y yo no entiendo por qué – gluuke
@gluuke es necesario agregar ellas: '(cadena1,) + tupla (aa [ii,:])'. –