2D-список в np.ndarray из ndarray - PullRequest
1 голос
/ 28 мая 2020

У меня есть такой 2D-список

import numpy as np
data=[[1,2],[2,3],[3,4]]

Я хочу преобразовать его в np.ndarray.

Я не хочу получать это:

np.array(data).shape
#(3,2)

я ожидаю примерно так

result=np.array(np.array([1,2]),np.array([2,3]),np.array([3,4]))

result.dtype
result.shape
#np.ndarry
#(3,)
result[i].shape
result[i].dtype
#(2,)
#np.ndarry

что мне делать так часто

Ответы [ 2 ]

3 голосов
/ 28 мая 2020

AS @hpaulj, предложенный в комментариях
Вы можете сначала создать empty массив типа object, а затем назначить ему список, например

data = [[1,2],[2,3],[3,4]]
result = np.empty(shape=len(data), dtype=object)

result[:] = [np.array(i) for i in data]
result
array([array([1, 2]), array([2, 3]), array([3, 4])], dtype=object)

result.shape
(3,)
0 голосов
/ 28 мая 2020

Вы можете попробовать преобразовать список в ndarray, а затем сгладить его.

np.array(data).flatten()

Вы также можете указать параметр порядка в flatten для сглаживания в row-major ('C ') или по столбцу (' F ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...