Python 读取txt文件输入并向两个数组添加值

Python 读取txt文件输入并向两个数组添加值,python,numpy,Python,Numpy,我想将A,B,C列值获取到数组(3 x 3),并将D列获取到另一个数组(3 x 1)。简单暴力法: import numpy as np # Read the data from a file with open('data.txt') as file: lines = file.readlines() # Chop of the columns raw_data = lines[1:] # Now fetch all the data data_abc = [] data

我想将
A
B
C
列值获取到数组(3 x 3),并将
D
列获取到另一个数组(3 x 1)。

简单暴力法:

import numpy as np    

# Read the data from a file
with open('data.txt') as file:
    lines = file.readlines()

# Chop of the columns
raw_data = lines[1:]

# Now fetch all the data
data_abc = []
data_d = []

for line in raw_data:
    values = line.split()
    data_abc.append(values[:3])
    data_d.append(values[3])

# Convert to matrix
data_abc = np.asmatrix(data_abc)
data_d = np.asmatrix(data_d)

# Display the result
print('Data A B C:', data_abc)
print('Data D:', data_d)

虽然它工作得很好,但当我将文件作为输入放入时,它会显示“AttributeError:‘file’object没有属性‘split’”,然后您需要将文件加载到内存中并循环所有行(请参阅更新的代码)。
import numpy as np    

# Read the data from a file
with open('data.txt') as file:
    lines = file.readlines()

# Chop of the columns
raw_data = lines[1:]

# Now fetch all the data
data_abc = []
data_d = []

for line in raw_data:
    values = line.split()
    data_abc.append(values[:3])
    data_d.append(values[3])

# Convert to matrix
data_abc = np.asmatrix(data_abc)
data_d = np.asmatrix(data_d)

# Display the result
print('Data A B C:', data_abc)
print('Data D:', data_d)
a33 = [[],[],[]]
a31 = []

with open('dat.txt') as f:
    for ln in f:
        a,b,c,d = ln.split()
        a33[0] += a
        a33[1] += b
        a33[2] += c
        a31 += d

print a33
print a31

[['2', '4', '3'], ['4', '5', '6'], ['5', '3', '7']]
['6', '7', '8']