[Numpy-discussion] Problems creating numpy.array with a dtype

josef.pktd at gmail.com josef.pktd at gmail.com
Sat May 15 09:37:17 EDT 2010


On Sat, May 15, 2010 at 9:27 AM, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> On 5/15/2010 6:30 AM, josef.pktd at gmail.com wrote:
>> On Sat, May 15, 2010 at 12:24 AM, Jimmie Houchin<jlhouchin at gmail.com>  wrote:
>>> def getArray(instrument, weekString=None):
>>>      ...
>>>      cur.execute(sql)
>>>      weekData = cur.fetchall()
>>>      wdata = []
>>>      lst = []
>>>      dtminute, dttypes = createDType()
>>>      for i in dttypes:
>>>          if i[1] == 'f8': lst.append(0.0)
>>>          elif i[1] == 'i1': lst.append(0)
>>>          else: lst.append('')
>>>      for m in weekData:
>>>          data = list(m)+lst[9:]
>>>          wdata.append(data)
>>
>> I think "data" here should be a tuple, i.e. tuple(data)
>> structured arrays expect tuples for each element/row
>>
>> If this is not it, then you could provide a mini example of wdata with
>> just a few rows.
>>
>>>      return np.array(wdata,dtype=dtminute)
>>>
>>> The createDType() function works fine. The getArray() function fails with:
>>> ValueError: Setting void-array with object members using buffer.
>>
>> cryptic exceptions messages in array construction usually means there
>> is some structure in the argument data that numpy doesn't understand,
>> I usually work with trial and error for a specific example
>>
>> Josef
>
> Hello Josef,
>
> Wrapping data,   tuple(list(m)+lst[9:])
> works.
>
> Thanks.
>
> For some reason I was under the impression that numpy accepted either
> lists or tuples as long as the shape of the structure, and the data
> types was the same as the dtype array structure that it is filling.
> Is there a particular reason this is not so?

the tuple (row) is one element of the structured array. It's possible
to have an n-dimensional structured array where each element is a
tuple.

So, I guess, numpy needs the distinction between list and tuples to
know what is an element.
That's from hitting at this very often, I never looked at the numpy
internals for this.

Josef

>
> Again, thanks. I can now get rid of my moderately less elegant, but
> working second version.
>
> Jimmie
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list