2013-05-17 6 views
0

Другими словами, каждый элемент внешнего массива будет вектором строки из исходного 2D-массива.Как преобразовать массив 2D numpy в массив 1D numpy массивов 1D numpy?

+2

Это уже так: если 'a' является двумерным массивом, то' a [j] 'является массивом 1D, содержащим' j '-ную строку' a'. – Jaime

ответ

0

Я думаю, что нет смысла использовать массивы numpy для этого, просто подумайте, что вам не хватает всех преимуществ numpy.

1

@Jaime уже говорил, 2D массив может быть интерпретирован как массив 1D массивов, предположим:

a = np.array([[1,2,3], 
       [4,5,6], 
       [7,8,9]]) 

делать a[0] вернется array([1, 2, 3]).

Так что вам не нужно делать никаких преобразований.

0

У меня была такая же проблема, чтобы добавить raw с разной длиной в 2D-массив.

Единственный трюк, который я нашел до сих пор, состоял в том, чтобы использовать список comprenhion и добавить новую строку (см. Ниже). Не очень оптимальна я думаю, но, по крайней мере, это работает ;-)
Надеюсь, что это может помочь

>>> x=np.reshape(np.arange(0,9),(3,3)) 
>>> x 
array([[0, 1, 2], 
[3, 4, 5], 
[6, 7, 8]]) 
>>> row_to_append = np.arange(9,11) 
>>> row_to_append 
array([ 9, 10]) 
>>> result=[item for item in x] 
>>> result.append(row_to_append) 
>>> result 
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8]), array([ 9, 10])] 
0

np.vsplit Split массива в нескольких вложенных массивов вертикально (по рядам).

x=np.arange(12).reshape(3,4) 
In [7]: np.vsplit(x,3) 
Out[7]: [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])] 

Пояснение может быть использовано для изменения этих массивов на 1d.

Это список массивов, а не массив массивов. Такая последовательность массивов может быть рекомбинирована с помощью vstack (или hstack, dstack).

np.array([np.arange(3),np.arange(4)]) 

делает массив из 2 элементов массивов. Но если массивы в списке имеют одинаковую форму (или совместимую), она создает 2d-массив. Что касается хранения данных, это может не иметь значения, является ли это 2d или 1d из 1d массивов.

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