user3310983
user3310983

Reputation:

setting an array element with a sequence

So I'm not the best at python but I need to create this program for one of my courses and I keep getting this error.

Basically I have w_array = linspace(0.6, 1.1, 11), then I have zq = array([1, 1, w_array, 1])

and it comes up with the error message:

ValueError: setting an array element with a sequence.

the basic function of the code is to take a bezier spline aerofoil, with control points and weights, run the data in xfoil and print cd and cl values, but this addition is to show a graph of the range of cd for a certain control point.

hope it makes sense, any help would be greatly appreciated.

Upvotes: 0

Views: 246

Answers (2)

CT Zhu
CT Zhu

Reputation: 54340

Is this your intended result?

In [2]:
numpy.hstack((1,1,numpy.linspace(0.6,1.1,11),1))
Out[2]:
array([ 1.  ,  1.  ,  0.6 ,  0.65,  0.7 ,  0.75,  0.8 ,  0.85,  0.9 ,
        0.95,  1.  ,  1.05,  1.1, 1. ])

You probably want the resulting array to have float64 dtypes rather than object, a mixed bag of dtypes, as @DSM pointed out.

Upvotes: 1

zhangxaochen
zhangxaochen

Reputation: 34017

If you want zq be an array containing both ints and lists, use parameter dtype:

In [300]: zq = array([1, 1, w_array, 1], dtype=object)

In [301]: zq
Out[301]: 
array([1, 1,
       array([ 0.6 ,  0.65,  0.7 ,  0.75,  0.8 ,  0.85,  0.9 ,  0.95,  1.  ,
        1.05,  1.1 ]),
       1], dtype=object)

Upvotes: 2

Related Questions