Сам по себе np.fromiter
поддерживает только конструкцию 1D-массивов и, как таковой, ожидает, что итерабельность будет давать отдельные значения, а не кортежи / списки / последовательности и т. д. Один из способов обойти это ограничение было бы использовать itertools.chain.from_iterable
, чтобы лениво «распаковать» выход вашего выражения генератора в одну одномерную последовательность значений:
import numpy as np
from itertools import chain
def fun(i):
return tuple(4*i + j for j in range(4))
a = np.fromiter(chain.from_iterable(fun(i) for i in range(5)), 'i', 5 * 4)
a.shape = 5, 4
print(repr(a))
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11],
# [12, 13, 14, 15],
# [16, 17, 18, 19]], dtype=int32)
Я полностью не соглашаюсь, что нет никакого подходящего решения. Действительно необходимо проверить GXT. Я использую реализацию Сетки Подкачки страниц в своей организации с большим успехом.
Этому уже ответили здесь
И к сожалению нет никакой удовлетворяющей доступной реализации. Лучший подход, который я нашел, имеет библиотека виджета GWT . Я использовал его для создания моего собственного решения для подкачки страниц.
Я использовал gwtlib [ http://code.google.com/p/gwtlib/] , это - хорошее потребляемое решение, которое использует Шаблон Контроллера, я использовал его в некоторых персональных проектах.
Я соглашаюсь, что GXT является лучшим решением, но, поскольку я сказал прежде, это имеет коммерческую лицензию таким образом любой не проект, с открытым исходным кодом должен заплатить за него!
Появилась новая таблица CellTable с поддержкой разбиения на страницы. Сейчас он находится в магистрали GWT и, если повезет, превратится в выпуск 2.1 позже в этом году.