Poleciłbym read_csv
funkcję z pandas
biblioteki:
import pandas as pd
df=pd.read_csv('myfile.csv', sep=',',header=None)
df.values
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
Daje to pandę DataFrame - pozwalającą na wiele przydatnych funkcji manipulacji danymi, które nie są bezpośrednio dostępne w przypadku tablic rekordów numpy .
DataFrame to dwuwymiarowa, oznaczona struktura danych z kolumnami potencjalnie różnych typów. Możesz myśleć o tym jak o arkuszu kalkulacyjnym lub tabeli SQL ...
Poleciłbym również genfromtxt
. Ponieważ jednak pytanie dotyczy tablicy rekordów , w przeciwieństwie do tablicy normalnej, dtype=None
parametr należy dodać do genfromtxt
wywołania:
Biorąc pod uwagę plik wejściowy myfile.csv
:
1.0, 2, 3
4, 5.5, 6
import numpy as np
np.genfromtxt('myfile.csv',delimiter=',')
daje tablicę:
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
i
np.genfromtxt('myfile.csv',delimiter=',',dtype=None)
daje tablicę rekordów:
array([(1.0, 2.0, 3), (4.0, 5.5, 6)],
dtype=[('f0', '<f8'), ('f1', '<f8'), ('f2', '<i4')])
Ma to tę zaletę, że można łatwo zaimportować plik z wieloma typami danych (w tym ciągami znaków) .