Tengo una matriz 2D en python modelada por una lista de listas y quiero extracto de la columna. He hecho una búsqueda rápida y he encontrado una forma que utiliza arrays de numpy. El problema es que no quiero usar numpy así que no quiero convertir mi lista de listas en una colección de la matriz y, a continuación, utilice [:,1] sintaxis. He intentado utilizar es normal, en una lista de listas, pero muestra un error, por lo que no es posible. Estoy pidiendo una cosa similar para la lista de listas sin tener que ir a través de cada elemento(En arrays de numpy, es más rápido para acceder a una columna usando [:,1] la sintaxis de la iteración sobre los elementos de la matriz).

He encontrado este enlace pero de nuevo se sugiere la iteración sobre los elementos sin un acceso directo.

Gracias de antemano.

A menos que usted use Numpy, usted debe utilizar un bucle y recorrer todas las sublistas. No hay otra manera. De hecho, Numpy también se itera a través de la «sublistas», pero en una forma más eficiente.
Así que me veo obligado a «codificar» en una función a la derecha? El uso de numpy me da un tiempo difícil para otra función que es la razón por la que quiero evitar.
¿Por qué lo llaman «codificar»? Sólo tiene que escribir una función.
no es realmente codificar(lo pongo entre comillas :p), yo sólo pensé que podría existir una forma más rápida de tener que escribir una función. De todos modos, si esa es la única manera, supongo que no tengo elección.
«El uso de numpy me da un tiempo difícil para otra función que es la razón por la que quiero evitar.» no me parece una razón válida. Lo que exactamente le da un tiempo difícil en numpy? Estoy seguro de que usted puede fijar que en lugar de…

OriginalEl autor Oussama Boussif | 2017-06-05

2 Comentarios

  1. 18

    Lista de comprensión son a su amigo cuando se trabaja con listas de listas:

    In [111]: alist
    Out[111]: 
    [[0, 1, 2, 3, 4, 5],
     [6, 7, 8, 9, 10, 11],
     [12, 13, 14, 15, 16, 17],
     [18, 19, 20, 21, 22, 23]]
    In [112]: [row[1] for row in alist]
    Out[112]: [1, 7, 13, 19]

    Hay también un práctico ‘lenguaje’ para la incorporación de una lista anidada, convirtiendo a ‘columnas’ en ‘filas’:

    In [113]: tlist = list(zip(*alist))
    In [114]: tlist
    Out[114]: 
    [(0, 6, 12, 18),
     (1, 7, 13, 19),
     (2, 8, 14, 20),
     (3, 9, 15, 21),
     (4, 10, 16, 22),
     (5, 11, 17, 23)]
    In [115]: tlist[1]
    Out[115]: (1, 7, 13, 19)
    Acerca de cómo cambiar el valor de la fila entera, con una fila de otra matriz?

    OriginalEl autor hpaulj

Dejar respuesta

Please enter your comment!
Please enter your name here