2

I've been trying to transform an array of arrays with a numpy ndarray of ndarrays.

This is my dtype:

dt = 'i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,f8,i8,i8,f8,f8,f8,a50,a50,a50,a50'

And this is my data:

# data array reduced to one row for sake of readability
data = [[45608L, 0L, 46115L, 11952L, 11952L, 0, 0, 0, 0, 0, 11951L, 11951L, 46176L, 9.0, 0, 1, 1407340577.0, 1407340577.0, 0, 'Simulation Movement', 'planned', '', ''],]

I already tried these ways:

np.array(data, dt)
np.array([np.array(row, dt) for row in data])

But when I run both these I get:

TypeError: expected a readable buffer object

Buuuuut, if I call np.array with an array only containing each single element of my rows and using the appropriate data type (did this using a loop with enumerate and a split dt) , it works. Was something like this:

for row in data:
  for index, value in enumerate(row):
    np.array([value,], dt.split(',')[index])

Any ideas, please?

1 Answer 1

1

Seems like for this to work, you would need to convert the inner list into tuple. Example -

import numpy as np

dt = 'i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,i8,f8,i8,i8,f8,f8,f8,a50,a50,a50,a50'

data = [[45608L, 0L, 46115L, 11952L, 11952L, 0, 0, 0, 0, 0, 11951L, 11951L, 46176L, 9.0, 0, 1, 1407340577.0, 1407340577.0, 0, 'Simulation Movement', 'planned', '', ''],]

result = np.array(map(tuple, data),dt)

Demo run here. But with this you get an array of 1 element back shape = (1,) (the 1 element being the tuple).


You can also use 'object' as the dtype, Example -

result1 = np.array(data,'object')

Even though this does result in an array with correct shape , some things may not work because of the mixed types (but I guess you expect that).

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.