Я бы порекомендовал функцию 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. ]])
Это дает пандам DataFrame - что позволяет многополезные функции манипулирования данными, которые не доступны напрямую с массивами записей numy .
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')])
Это имеет то преимущество, что файл с несколькими типами данных (включая строки) может быть легко импортирован .