将列表列表转换为numpy数组

时间:2018-08-14 14:29:42

标签: python arrays list numpy

在您将此问题标记为重复之前,请通篇阅读全文...

我有一个看起来像...的列表清单

>>> print(list_of_lists)
[[3, 3, 7, 8, 5], [9, 3, 3, 3, 3], [9, 10, 11, 3, 23, 3, 3], [20, 3, 3, 3, 3, 3, 3, 3], [20, 3, 3, 3, 3, 3, 3]]

我想将此列表列表转换为数组。但是,当我这样做时:

potential_numpy_array = numpy.array(list_of_lists)

或:

potential_numpy_array = numpy.asarray(list_of_lists)

我得到一些陌生人:

>>> print(potential_numpy_array)
[list([3, 3, 17, 18, 16]) list([20, 3, 3, 3, 3]) list([20, 5, 6, 3, 12, 3, 3]) list([9, 3, 3, 3, 3, 3, 3, 3]) list([9, 3, 3, 3, 3, 3, 3])]

我看了很多其他问题,但没有找到可以解决此问题的答案。

有人可以帮我找出混乱的根源吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

要创建一个numpy数组列表:

np_arrays = []

for array in arrays:
    np_arrays.append(numpy.array(array))

答案 1 :(得分:0)

由于有其他stackOverflow用户的帮助,我意识到列表是“锯齿状的”,需要填充。锯齿状列表的示例是:

[ [1,2],
  [1,3,2],
  [1] ]

我需要:

[ [1,2,0],
  [1,3,2],
  [1,0,0] ]

由于我正在使用TensorFlow和keras,所以我可以这样做:

test_data = keras.preprocessing.sequence.pad_sequences(test_data,
                                                    value=word_index["<PAD>"],
                                                    padding='post',
                                                    maxlen=12)