2016-11-03 6 views
0

Так я использовал operator.attrgetter, чтобы попытаться сорвать класс массива в Numpy массив по tupleList=map(attrgetter(*inNames),inClass) и в конечном итоге с чем-то вроде этого для tupleList[0]Свести кортеж, содержащий Numpy массив NumPy массив

(1, array([0.0, 0.0, 0.0, 0.0], 'f'), 1)

Я хотел бы чтобы превратить это в Numpy массив (в частности, структурированный массив, но я могу работать, что из), который выглядит следующим образом

array([1, 0.0, 0.0, 0.0, 0.0, 1], dtype=(('id', 'i8'), . . . .)])

К сожалению, np.asArray(tupleList[0]) и np.asAnyArray(tupleList[0]) не работают, и я получаю

ValueError: setting an array element with a sequence

Есть ли способ обойти это? В настоящее время я борюсь с моим ИТ-подразделением, чтобы получить панды, но не имею его прямо сейчас. Я полагаю, что это поможет?

ответ

1

Использование np.hstack для того, чтобы интегрировать ваш кортеж:

In [106]: foo = (1, np.array([0.0, 0.0, 0.0, 0.0], 'f'), 1) 

In [107]: np.hstack(foo) 
Out[107]: array([ 1., 0., 0., 0., 0., 1.]) 
+0

Это работает 1d, есть способ сделать это для всей tupleList? –

+1

@ DanielForsman Но ваш вопрос касается 1D, а не всего списка tupleList. Изменение требований вашего вопроса после предоставления ответа не очень справедливо. –

+0

Понял. В любом случае кажется, что 'np.array ([np.hstack (t) для t в tupleList])' работает. –

Смежные вопросы