You can use Numpy’s genfromtxt() method to do so, by setting the delimiter kwarg to a comma.
from numpy import genfromtxt
my_data = genfromtxt(‘my_file.csv’, delimiter=’,’)
More information on the function can be found at its respective documentation.
I would recommend the read_csv function from the pandas library:
import pandas as pd
df=pd.read_csv(‘myfile.csv’, sep=’,’,header=None)
df.values
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
This gives a pandas DataFrame – allowing many useful data manipulation functions which are not directly available with numpy record arrays.
DataFrame is a 2-dimensional labeled data structure with columns of
potentially different types. You can think of it like a spreadsheet or
SQL table…
I would also recommend genfromtxt. However, since the question asks for a record array, as opposed to a normal array, the dtype=None parameter needs to be added to the genfromtxt call:
Given an input file, myfile.csv:
1.0, 2, 3
4, 5.5, 6
import numpy as np
np.genfromtxt(‘myfile.csv’,delimiter=’,’)
gives an array:
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
and
np.genfromtxt(‘myfile.csv’,delimiter=’,’,dtype=None)
gives a record array:
array([(1.0, 2.0, 3), (4.0, 5.5, 6)],
dtype=[(‘f0’, ‘