Numpy error - ValueError: setting an array element with sequence
You have struggled during hours and hours to understand why you got this damned error while compiling a complex array structure? I did. In my case I was trying to create an array of the following shape :
[ [ [0,0,1,0] , 0.5] , [ [0,1,1,0] , 0.3] , [ [1,0,1,0] , 0.2] ]
With the basic syntax, it was impossible. I first didn't notice the problem because I wasn't using the 'array' constructor, but when I tried to append some value to my initial vector, I got the error : ValueError: setting an array element with sequence.
Even the simple construction : array([( [0,0,1,0],0.5)]) would give the error.
the problem is that numpy is made to calculate vectors and arrays. It doesn't like the fact you give it table with different sizes. Ok, then you can try to change the second value 0.5 to [0.5,0,0,0]. It would work.... but it's not really clean. Your code will look messy.
Instead, here is the solution I found after 4 hours looking everywhere on the web... finding nothing. This is my own solution, so if helped you, I would be very glad
In order to help numpy to accept your vector... tell it it's not a vector :
array([( [0,0,1,0],0.5)],object)
By doing this you change de dtype of your array, and it can accept even personnal classes.
Does that work for you?














May 24th, 2010 at 22:03
Absolutely fantastic, i was looking for that for ages!
June 19th, 2011 at 11:05
September 13th, 2011 at 11:21
yep, I had the same problem.
I was constructing list of arrays and then converting it to an array of arrays using
array_of_arrays=array(list_of_arrays)
it worked fine on python2.7 and numpy-1.5.1-1.fc15.x86_64
but failed on
python2.5 and numpy-1.2.0-3.fc10.x86_64.
So I changed the code as:
array_of_arrays=array(list_of_arrays,list)
now it works fine
btw:
array_of_arrays=array(list_of_arrays,object)
also works fine
Thanks a lot !