Преобразовать массив itertools в массив numpy ⇐ Python

Программы на Python
Anonymous
Преобразовать массив itertools в массив numpy

Сообщение Anonymous »

Я создаю этот массив:

A=itertools.combinations(range(6),2)


и мне нужно манипулировать этим массивом с помощью numpy, например:

A.reshape(..


Если размеры A велики, список команд (A) работает слишком медленно.

< h2>Как я могу «конвертировать» массив itertools в массив numpy?

Обновление 1:
Я попробовал решение hpaulj в этом конкретном случае ситуация немного медленнее, есть идеи?

start=time.clock()

A=it.combinations(range(495),3)
A=np.array(list(A))
print A

stop=time.clock()
print stop-start
start=time.clock()

A=np.fromiter(it.chain(*it.combinations(range(495),3)),dtype=int).reshape (-1,3)
print A

stop=time.clock()
print stop-start


Результаты:

[[ 0 1 2]
[ 0 1 3]
[ 0 1 4]
...,
[491 492 494]
[491 493 494]
[492 493 494]]
10.323822
[[ 0 1 2]
[ 0 1 3]
[ 0 1 4]
...,
[491 492 494]
[491 493 494]
[492 493 494]]
12.289898


Подробнее здесь: https://stackoverflow.com/questions/332 ... umpy-array

Вернуться в «Python»