有很多方法可以做到这一点,但如果我是你,我会选择这种方式。
with open('matrix.txt') as file:
lines = file.read()
# lines: '1;2;3;,4;5;6;,7;8;9;,'
lines = [line.split(';') for line in lines.split(',')]
# lines: [['1', '2', '3', ''], ['4', '5', '6', ''], ['7', '8', '9', ''], ['']]
lines = [[float(value) for value in line if value] for line in lines]
lines = [line for line in lines if line]
# lines: [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]
matrix = np.array(lines)
# matrix: array([[1., 2., 3.],
# [4., 5., 6.],
# [7., 8., 9.]])
或者,您也可以选择这种方式。
with open('matrix.txt') as file:
lines = file.read()
lines = lines.replace(';', ' ').replace(',', ';')
# lines: '1 2 3 ;4 5 6 ;7 8 9 ;'
if lines[-1] == ';':
lines = lines[:-1]
np.matrix(lines)
保存代码时,我认为这也可以。
rm = np.genfromtxt('test.csv', delimiter=',', dtype='str', skip_header=26)
rm = np.array([[float(value) for value in line.split(';') if value] for line in rm])
它们并不优雅,但它们很有效。