将 .data 文件转换为 numpy 数组

Converting .data file into numpy arrays

我的 file.data 看起来像这样:

   "3.0,1.5,0\n
     4.6,0.7,1\n
     5.8,2.7,2"

我想将这些数据加载到两个 numpy 数组中,这样它最终看起来像这样:

X = [ [3.0, 1.5],
      [4.6, 0.7],
      [5.8, 2.7] ]

y = [0, 1, 2]

如果我执行以下操作...

fname = open("file.data", "r")
for line in fname.readlines():
    print(line)

...我可以逐行读取字符串,但是分隔这些值并将它们放入如上所示的两个 numpy 数组中的最佳方法是什么?

numpy 中是否有真正有效地执行此操作的好模块或函数?

  1. 如果您的数据文件是一个带有分隔符的简单 txt 文件,那么您可以使用 numpy.loadtxt 一次加载整个数据
import numpy as np
data = np.loadtxt("file.data",delimiter=',')
X = data[:,0:2]
Y = data[:,2]
  1. 如果你想逐行阅读,你可以尝试使用 numpy.fromstring,它将每个字符串输出到一个数组中
import numpy as np
data =[]
fname = open("file.data", "r")
for line in fname.readlines():
    data.append(fromstring(line,sep=','))
data_array = np.array(data)
X = data_array[:,0:2]
Y = data_array[:,2]