Кажется, что популярное решение не будет работать во всех контейнерах... http://www.theserverside.com/discussions/thread.tss?thread_id=30190
Я не знаю. Скорее всего, это ошибка / функция, которая никогда не была реализована. numpy.hstack
по сути является оболочкой для функции в numpy.core.fromnumeric
. Numeric - один из двух предшественников numpy. Большинство функций в numpy имеют соглашение о выводе того же типа, что и ввод, путем вызова метода __ array_wrap __
ввода на выходе, и результирующий вывод должен иметь те же данные, но "завернутый" в новый класс. Возможно, понятие «обертывание» не было в числовом формате и никогда не добавлялось к этой функции.
Вы можете использовать этот метод, чтобы сделать более умную функцию стекирования
def hstack2(arrays) :
return arrays[0].__array_wrap__(numpy.hstack(arrays))
Это работает как для повторных массивов, так и для обычных массивов
>>> f = hstack2((a,b))
>>> type(f)
<class 'numpy.core.records.recarray'>
>>> f.foo
array([ 140633760262784, 111050731618561, 140633760262800,
7536928, 8391166428122670177])
>>> x = numpy.random.rand(3)
>>> y = numpy.random.rand(2)
>>> z = hstack2((x,y))
>>> type(z)
<type 'numpy.ndarray'>
не уверен, что вы планируете,
Кстати, вы также можете использовать:
c = np.concatenate((a,b))
или
c = np.r_[a, b]
( Источник: это сообщение из списка рассылки )