2d到ndarray的ndarray的列表

问题描述 投票:1回答:2

我有这样的二维列表

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

我应该怎么做

python pandas numpy
2个回答
0
投票

AS @hpaulj在评论中建议您可以先创建empty类型的empty数组,然后向其分配列表,例如

object

0
投票

您可以尝试将列表转换为ndarray,然后将其展平

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,)

您还可以指定展平的顺序参数以按行优先('C')或列优先('F')的顺序展平

© www.soinside.com 2019 - 2024. All rights reserved.