将列表列表转换为numpy数组,每个列表元素之间不带逗号

时间:2017-02-27 18:13:03

标签: python python-2.7 list numpy keras

我有一个列表如下:a = [[1,1],[1,1]]

我想将其转换为如下所示的numpy数组:a = [[1,1] [1,1]]

有什么方法可以实现这个目标吗?即使keras.datasets.imdb,我也似乎无法模仿type(X_train) = numpy.ndarray给出的X_train数据集结构。

1 个答案:

答案 0 :(得分:3)

您需要更好地解释keras目标。是否存在逗号表示数据结构的性质,但它实际上只是一种显示惯例。

Python列表始终使用逗号分隔符:

In [751]: alist = [[1,2],[3,4]]
In [752]: alist
Out[752]: [[1, 2], [3, 4]]

可以使用和不使用逗号显示numpy数组。

In [753]: arr=np.array(arr)
In [754]: arr
Out[754]: 
array([[1, 2],
       [3, 4]])
In [755]: str(arr)
Out[755]: '[[1 2]\n [3 4]]'
In [756]: print(arr)
[[1 2]
 [3 4]]

为了得到逗号和空格的混合,我必须创建一个对象dtype数组:

In [757]: a=np.empty((2,), dtype=object)
In [758]: a
Out[758]: array([None, None], dtype=object)
In [759]: print(a)
[None None]
In [760]: a[0]=[1,2]
In [761]: a[1]=[3,4]
In [762]: a
Out[762]: array([[1, 2], [3, 4]], dtype=object)
In [763]: print(a)
[[1, 2] [3, 4]]

我可以想象构建这样一个数组的keras包,但我不建议初学者使用。

来自keras imdb文档

  

X_train,X_test:序列列表,它是索引列表(整数)。如果nb_words参数是特定的,则最大可能的索引值为nb_words-1。如果指定了maxlen参数,则最大可能的序列长度为maxlen。

它表示列表列表,但它可能是对象dtype列表数组。听起来那些内部列表的长度各不相同,这就解释了为什么它不是二维数组。

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

制作这样的数组。