Necesito cortar una matriz de un índice dado hasta que se cumpla una determinada condición.Python: divide la matriz hasta que se cumpla determinada condición
>>> a = numpy.zeros((10), dtype='|S1')
>>> a[2] = 'A'
>>> a[4] = 'X'
>>> a[8] = 'B'
>>> a
array(['', '', 'A', '', 'X', '', '', '', 'B', ''], dtype='|S1')
Por ejemplo, para la matriz anterior, quiero un subconjunto de un índice dado hasta los primeros valores distintos de cero en ambas direcciones. Por ejemplo, para los valores de índice 2, 4, 8, los resultados serían:
['', '', A, ''] # 2
['', X, '', '', ''] # 4
['', '', '', B, ''] # 8
¿Alguna sugerencia sobre la forma más sencilla de hacer esto mediante la API numpy? Al aprender Python y Numpy, agradecería cualquier ayuda. ¡Gracias!
¿Puede aclarar su pregunta? ¿Qué quiere decir "hasta los primeros valores que no son Ninguno en ambas direcciones"? –
El hecho de que esté utilizando matrices 'object' (no es muy común y no consume mucha memoria) presenta un problema particular cuando se trata de determinar el índice de elementos de matriz que no son None. ¿Podría persuadirse de usar un tipo de byte fijo? Si está comprometido con el tipo 'object', ¿es cierto que cualquier elemento" non-None "se evaluará como' True' cuando typecast sea 'bool'? Cualquiera de estos ayudaría a simplificar mucho las cosas. – Paul
@Paul Estoy usando una matriz 'object' para almacenar cadenas de caracteres individuales. Esencialmente, todo lo que necesito es una matriz 'char'. ¿Hay una alternativa 'dtype' que podría usar' dtype'? – armandino