Estoy en mi ingenio en la final como me sale «no se puede realizar reducir flexible tipo» cuando trato de calcular la media de una columna, el archivo se lee bien (no de los valores perdidos en cualquiera de las filas/columnas) pero cuando me pongo en la línea de:
Brain_wt_mean = np.media(ifile eje=0) entonces Python 2.7.5 no le gusta. Yo estoy usando esta dentro de la Spyder IDE. Muchas gracias por cualquier ayuda.

import os
import numpy as np

if __name__ == "__main__":
    try:        
        curr_dir = os.getcwd()
        file_path = curr_dir + '\brainandbody.csv'
        ifile = np.loadtxt('brainandbody.csv', delimiter=',', skiprows=1, dtype=[('brainwt', 'f8'), ('bodywt', 'f8')])

    except IOError:
        print "The file does not exist, exiting gracefully"        

Brain_wt_mean = np.mean(ifile axis=0)




### BELOW is a sample of the csv file ######

Brain Weight    Body Weight
3.385   44.5
0.48    15.5
1.35    8.1
465 423
36.33   119.5
27.66   115
14.83   98.2
1.04    5.5
  • Hizo algunas comas no sobrevivir el copiar-pegar? La muestra no está delimitado por comas, pero su loadtxt conjuntos de delimiter=',', y ifile axis=0 no es válida para Python
InformationsquelleAutor user3001060 | 2013-11-19

1 Comentario

  1. 5

    Cuando se trabaja con matrices estructuradas como que se pierde parte de la flexibilidad que había de otra manera. Usted puede tomar la media después de la selección de la correspondiente pieza, aunque:

    >>> ifile
    array([(3.385, 44.5), (0.48, 15.5), (1.35, 8.1), (465.0, 423.0),
           (36.33, 119.5), (27.66, 115.0), (14.83, 98.2), (1.04, 5.5)], 
          dtype=[('brainwt', '<f8'), ('bodywt', '<f8')])
    >>> ifile["brainwt"].mean()
    68.759375000000006
    >>> ifile["bodywt"].mean()
    103.66249999999999

    Yo uso numpy casi todos los días, pero cuando se trabaja con datos de la clase donde yo quiero a nombre de las columnas, creo que el pandas biblioteca que hace las cosas mucho más conveniente, y interacciona muy bien. Vale la pena un vistazo. Ejemplo:

    >>> import pandas as pd
    >>> df = pd.read_csv("brainandbody.csv", skipinitialspace=True)
    >>> df
       Brain Weight  Body Weight
    0         3.385         44.5
    1         0.480         15.5
    2         1.350          8.1
    3       465.000        423.0
    4        36.330        119.5
    5        27.660        115.0
    6        14.830         98.2
    7         1.040          5.5
    >>> df.mean()
    Brain Weight     68.759375
    Body Weight     103.662500
    dtype: float64
    • Muchas gracias por la rápida respuesta, ifile[«brainwt»].media (de) funcionó!

Dejar respuesta

Please enter your comment!
Please enter your name here