Я боюсь получать строковые значения в массив в python. У меня есть файл, длиной около 30К записей, и каждая строка выглядит следующим образом:Запись записей строки в csv в массив в python?
0R1, Sn = 0,3М, Sm = 0,7 М, Sx = 1,5М
Мне не нужна часть 0R1; все, что мне нужно, это все значения Sn в одном массиве, значения Sm в другом, а Sx в другом (конечно, я еще не понял, как я собираюсь получить числовые значения из строки еще, но Я подумаю об этом позже). Сейчас я пытаюсь сделать массив строк, я полагаю.
Вот мой код:
fname = '\\pathname...\\WXT51003.txt'
f1 = open(fname, 'r')
import csv
import numpy
from numpy import zeros
reader = csv.reader(f1)
Max = zeros((29697,1), dtype = numpy.str)
Mean = zeros((29697,1), dtype = numpy.str)
Min = zeros((29697,1), dtype = numpy.str)
for i, row in enumerate(reader):
Min[i] = row[1]
Mean[i] = row[2]
Max[i] = row[3]
f1.close()
print Min[0:10]
Выход оператора печати представляет собой массив с «S» в каждой строке. Как получить его для чтения всей строки, а не только первого символа?
use dtype «S8» или какой бы большой вам ни понадобились ваши строки ... или использовать dtype.object или что-то еще ... по умолчанию это будет тип строки len1 ... или не использовать numpy (поскольку вы имеете дело со строками в любом случае) –
@JoranBeasle y будет работать, если разные строки имеют разные длины строк? Например, если у меня есть Sn = 0.3M, то у меня длина строки 7, но если это Sn = 10.1M, то это другая длина строки. –
как lng, когда вы устанавливаете его на максимальную длину (см. Numpy docs about dtypes) –