【问题标题】:How to read csv file into numpy arrays without quotation mark如何将csv文件读入不带引号的numpy数组
【发布时间】:2019-09-22 04:07:29
【问题描述】:

我想读取 csv 文件中的数据并做一些格式。但是在将数据重新格式化为 numpy 数组后,我忘记了如何删除“ ' ' ”。我已经看到有一个技巧可以在之前的一行中使用eval()。但是现在找不到了。

我的 csv 文件数据如下:

6,1 2 3 4 5 6 ... 2300 2301 2302 2303 2304\n

...

1,1 2 3 4 5 6 ... 2300 2301 2302 2303 2304\n

from load_data import load
import numpy as np
import matplotlib.pyplot as plt

with open('fer2013.csv') as f:
    f.readline()
    line = f.readline()
    line = line.replace("\n","")
    line = line.split(",")
    X = np.array(line[1].split(" "))
    X.reshape((48,48))
    print(X)

输出是:

[['70' '80' '82' ... '52' '43' '41'] ['65' '61' '58' ... '56' '52' '44'] ['50' '43' '54' ... '49' '56' '47'] ... ['91' '65' '42' ... '72' '56' '43'] ['77' '82' '79' ... '105' '70' '46'] ['77' '72' '84' ... '106' '109' '82']]

但我想要的是:

[[70 80 82 ... 52 43 41] ... [77 72 84 ... 106 109 82]]

我见过一些类似这种格式的技巧(但实际上不是这样):

X = np.array(for I in eval(line[1].split(" ")))

【问题讨论】:

标签: python csv numpy


【解决方案1】:

使用X = np.array(line[1].split(" ")).astype(np.int)

【讨论】:

    【解决方案2】:

    好的,我找到了答案。

    X = np.array(list(map(eval,line[1].split(" "))))

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多