Python 用列表连接numpy数组

Python 用列表连接numpy数组,python,numpy,Python,Numpy,我想将numpy数组与list连接起来。 像这样: trainClass = np.ones(len(allDataList[0])).tolist() trainArray = tfIdfsListTrain.toarray() np.concatenate( (trainArray, trainClass)) 但是我不知道该怎么做。听起来你的列表,当变成一个数组时,没有正确的维度数。让我举例说明: In [323]: arr = np.arange(12).reshape(3,4) In

我想将numpy数组与list连接起来。 像这样:

trainClass = np.ones(len(allDataList[0])).tolist()
trainArray = tfIdfsListTrain.toarray()
np.concatenate( (trainArray, trainClass))

但是我不知道该怎么做。

听起来你的列表,当变成一个数组时,没有正确的维度数。让我举例说明:

In [323]: arr = np.arange(12).reshape(3,4)
In [324]: alist = list(range(3))
In [325]: np.concatenate((arr,alist))
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-325-9b72583c40de> in <module>()
----> 1 np.concatenate((arr,alist))

ValueError: all the input arrays must have same number of dimensions
In [326]: arr.shape
Out[326]: (3, 4)
arr
是二维的,所以这个数组也需要是二维的:

In [328]: np.array(alist)[:,None].shape
Out[328]: (3, 1)
In [329]: np.concatenate((arr, np.array(alist)[:,None]), axis=1)
Out[329]: 
array([[ 0,  1,  2,  3,  0],
       [ 4,  5,  6,  7,  1],
       [ 8,  9, 10, 11,  2]])
在最后一个维度上连接(3,4)数组和(3,1)数组很容易


我得到的印象是,很多人在不了解numpy数组的一些基本知识(例如形状和尺寸)的情况下,就开始使用机器学习代码(
tensorflow
keras
sklearn
)?您的列表名为
list
?请提供一些示例数据,最好不要命名变量
列表
,等等。有什么问题吗?将列表转换为一个数组,并将其传递给
串联
。或者让
串联
为您执行此操作。如果有错误,可能与形状和尺寸不匹配有关。@hpaulj数组的形状是(25008600),列表的len是2500So,你是在寻找
hstack
或类似的东西吗?你最后的评论是如此真实,早些时候我把所有东西都当作一个黑匣子,在深度学习热潮中领先,但这让我无计可施,幸运的是,我有一位好导师一步一步地指导我。在深入学习之前,我正在彻底学习基础知识。
In [328]: np.array(alist)[:,None].shape
Out[328]: (3, 1)
In [329]: np.concatenate((arr, np.array(alist)[:,None]), axis=1)
Out[329]: 
array([[ 0,  1,  2,  3,  0],
       [ 4,  5,  6,  7,  1],
       [ 8,  9, 10, 11,  2]])