Jose Ramon
Jose Ramon

Reputation: 5444

Convert list to np.arrays efficient

I am loading a dataset in my python code with contains two matrices. The name of those matrices are train_dataset_face and train_dataset_audio and the way that I am reading them is as list of np.arrays. Finally I convert them as np.arrrays of np.arrays. Initially my matrices during the debug look like that:

enter image description here

andenter image description here

Then I convert them into np.arrays using the following code:

 train_dataset_face = np.array(train_dataset_face)
 train_dataset_audio = np.array(train_dataset_audio)

And in the end my matrices look like:

enter image description here

For some weird reason in the case of train_dataset_face I got this array indication before each vector of my array while in the case of train_dataset_audio i dont have it. Is it possible to remove it? This "array" indication cause me problems when I am trying to apply several algorithms to the train_dataset_face. Any idea what happened here?

Upvotes: 0

Views: 298

Answers (1)

Daniel
Daniel

Reputation: 42758

You can only create a single array, if all arrays in your list has the same shape, which is true for train_dataset_audio but not for train_dataset_face.

>>> a = [numpy.array([1,2,3,4]), numpy.array([1,2,3,4])]
>>> numpy.array(a)
array([[1, 2, 3, 4],
       [1, 2, 3, 4]])
>>> b = [numpy.array([1,2,3]), numpy.array([1,2,3,4])]
>>> numpy.array(b)
array([array([1, 2, 3]), array([1, 2, 3, 4])], dtype=object)

Upvotes: 1

Related Questions