Ответ 1
Вы правы. Использование np.genfromtxt
дает вам некоторые параметры, такие как параметры missing_values
, filling_values
, которые могут помочь вам справиться с неполным csv
. Пример:
1,2,,,5
6,,8,,
11,,,,
Можно прочитать с помощью:
filling_values = (111, 222, 333, 444, 555) # one for each column
np.genfromtxt(filename, delimiter=',', filling_values=filling_values)
#array([[ 1., 2., 333., 444., 5.],
# [ 6., 222., 8., 444., 555.],
# [ 11., 222., 333., 444., 555.]])
Параметр unpack
полезен, если вы хотите поместить каждый столбец текстового файла в другую переменную. Например, у вас есть текстовый файл со столбцами x, y, z
, а затем:
x, y, z = np.loadtxt(filename, unpack=True)
Обратите внимание, что это работает так же, как
x, y, z = np.loadtxt(filename).T
По умолчанию итерация по 2-мерному массиву означает итерацию по строкам, поэтому вам нужно транспонировать или использовать unpack=True
в этом примере.