【问题标题】:Python: numpy, how to len of csvPython:numpy,如何对 csv 进行 len
【发布时间】:2014-10-10 01:39:45
【问题描述】:

我有 2 个文件:

res_my_inp.csv : http://ge.tt/8Fa4d512/v/0?c

res_my_out.csv : http://ge.tt/8Fa4d512/v/1?c

我想从res_my_inp.csv 获取ma​​trix,从res_my_out.csv 获取array(只获取1 列)

我的代码:

import csv

in_filepath  = os.path.abspath( "res_my_inp.csv" )
out_filepath = os.path.abspath( "res_my_out.csv" )

def ReadCsv( fileName, mode ):
    in_file = open( fileName )
    reader = csv.reader( in_file, delimiter = '\t', quotechar = '"' )
    if ( mode == 'input' ):
        data  = [[]]
        for row in reader:
            data.append( row )
    elif( mode == 'output' ):
        column = 1
        data   = []
        for row in reader:
            data.append( int( row[column] ) )

    data.pop(0)
    return data

X = np.asarray( ReadCsv(  in_filepath, 'input'  ), 'int' )
Y = np.asarray( ReadCsv( out_filepath, 'output' ), 'int' )

print(len(X))
print(len(Y))

为什么是len(X) = 100,却是len(Y) = 99

【问题讨论】:

  • 使用X.shapeY.shape 而不是len() 验证您的真实输出

标签: python csv numpy


【解决方案1】:

长度不符是因为这行:

        data = [[]]

与这一行不同:

        data = []

'input' 分支中,data 列表的开头有一个空列表,而 'output' 分支中不存在该列表。

【讨论】:

  • 是的,但是为什么在 Y 中只有 99 个元素,而在文件中是 100?
  • 因为这条线:data.pop(0)
  • 干杯,伙计。编码愉快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 2021-12-03
  • 1970-01-01
  • 2021-10-03
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多