将列表文件添加到numpy数组

2024-04-28 19:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“abc.data”的文件,其中包含如下形式的元素

39岁,州长,77516岁,单身,13岁,未婚,行政文书,不在家,白人,男性,2174,0,40岁,美国,<=五万 50岁,Self emp not inc,83311岁,单身,13岁,已婚公民配偶,高级管理人员,丈夫,白人,男性,0,0,13岁,美国,<=五万

我想制作一个数组来存储上面的数据,也可以存储X[]中的所有元素,除了最后一个元素,还有Y[]中的最后一个元素

X=[39,州政府,77516,单身,13岁,未婚,行政文书,不在家,白人,男性,2174,0,40,美国] Y=[<;=50K]


Tags: 文件ltself元素datanot形式abc
2条回答

试试这个:

with open('abc.data') as file:
    out = file.read()
    out = out.split(',')
    X = out[:-1]
    Y = [out[-1]]
    
    print(X, Y)

读取文件,在逗号处拆分文件(形成一个数组),将每个元素放置在X数组中,最后一个元素放置在Y数组中

扩展上面@kabooya的答案:虽然这个建议有效,但它生成的是X和Y列表,而不是问题中所问的numpy数组。另外,我假设文件中有多行,因此可以循环使用它们来创建记录列表,如下所示:

import numpy as np
path_to_file = './abc.data' # insert your path here
X_list = []
Y_list = []
with open(path_to_file, 'r') as f:
    for line in f: #line = f.readline()
        features_list = [el.strip() for el in line.split(',')]
        # target_dict = {'Y': features_list[-1].strip()}
        # for idx_record in range(len())
        X = np.array(features_list[:-1])
        Y = np.array([features_list[-1]])
        X_list.append(X)
        Y_list.append(Y)

其中strip()用于清除字符串的尾随空格和前导空格

相关问题 更多 >