Convert 2d numpy array into list of lists

115,728

You can simply cast the matrix to list with matrix.tolist(), proof:

>>> import numpy
>>> a = numpy.ones((2,4))
>>> a
array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
>>> a.tolist()
[[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]]
>>> type(a.tolist())
<type 'list'>
>>> type(a.tolist()[0])
<type 'list'>
Share:
115,728

Related videos on Youtube

Framester
Author by

Framester

Updated on November 02, 2020

Comments

  • Framester
    Framester over 3 years

    I use an external module (libsvm), which does not support numpy arrays, only tuples, lists and dicts. But my data is in a 2d numpy array. How can I convert it the pythonic way, aka without loops.

    >>> import numpy
    >>> array = numpy.ones((2,4))
    >>> data_list = list(array)
    >>> data_list
    [array([ 1.,  1.,  1.,  1.]), array([ 1.,  1.,  1.,  1.])]
    
    >>> type(data_list[0])
    <type 'numpy.ndarray'>  # <= what I don't want
    
    # non pythonic way using for loop
    >>> newdata=list()
    >>> for line in data_list:
    ...     line = list(line)
    ...     newdata.append(line)
    >>> type(newdata[0])
    <type 'list'>  # <= what I want