/ / vector de tamaño desconocido python - python, matlab, vector

vector desconocido tamaño python - python, matlab, vector

Tengo un código matlab que estoy intentando traducir.en pitón. Soy nuevo en Python, pero he podido responder muchas preguntas en Google. Pero ahora, estoy tratando de averiguar lo siguiente: Tengo un bucle for cuando aplico cosas diferentes en cada columna, pero no sabes el número de columnas. Por ejemplo. En Matlab, nada más fácil que esto:

    for n = 1:size(x,2); y(n) = mean(x(:,n)); end

Pero no tengo idea de cómo hacerlo en python cuando, por ejemplo, el número de columnas es 1, porque no puedo hacer t [:, 1] en python. ¿Alguna idea?

Gracias

Respuestas

1 para la respuesta № 1

Tratar numpy. Es un enlace de python para alto rendimiento.biblioteca matemática escrita en C. Creo que tiene los mismos conceptos de operaciones de división de matriz, y es significativamente más rápida que el mismo código escrito en python puro (en la mayoría de los casos).

Respecto a tu ejemplo, creo que lo más cercano sería algo usando numpy.mean.

En python puro es difícil calcular la media de la columna, pero si puedes transponer la matriz, puedes hacerlo usando algo como esto:

# there are no builtin avg function
def avg(lst):
return sum(lst)/len(lst)

rows = list(avg(row) for row in a)

2 para la respuesta № 2

Sí, si usas numpy puedes usar x [:, 1], y también obtienes otras estructuras de datos (vectores en lugar de listas), la principal diferencia entre matlab y numpy es que matlab usa matrices para cálculos y numpy usa vectores, pero te acostumbras a ello, creo esta guía te ayudará


1 para la respuesta № 3

Esta es un forma de hacerlo

from numpy import *
x=matrix([[1,2,3],[2,3,4]])
[mean(x[:,n]) for n in range(shape(x)[1])]

# [1.5, 2.5, 3.5]