Я бы порекомендовал read_csv
функцию из pandas
библиотеки:
import pandas as pd
df=pd.read_csv('myfile.csv', sep=',',header=None)
df.values
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
Это дает pandas DataFrame - позволяющий много полезных функций манипулирования данными, которые не доступны напрямую с массивами записей .
DataFrame - это двумерная помеченная структура данных со столбцами потенциально разных типов. Вы можете думать об этом как электронную таблицу или таблицу SQL ...
Я также рекомендовал бы genfromtxt
. Однако, поскольку вопрос требует массив записей , в отличие от обычного массива, dtype=None
параметр должен быть добавлен к genfromtxt
вызову:
Учитывая входной файл myfile.csv
,:
1.0, 2, 3
4, 5.5, 6
import numpy as np
np.genfromtxt('myfile.csv',delimiter=',')
дает массив:
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
а также
np.genfromtxt('myfile.csv',delimiter=',',dtype=None)
дает массив записей:
array([(1.0, 2.0, 3), (4.0, 5.5, 6)],
dtype=[('f0', '<f8'), ('f1', '<f8'), ('f2', '<i4')])
Это имеет то преимущество, что файл с несколькими типами данных (включая строки) может быть легко импортирован .