如何连接以下两个矩阵?

时间:2016-12-27 17:13:48

标签: python numpy

你好我有以下矩阵叫做tfidf2,这个矩阵的形状是 (11159,1985)它有11159行和1985列,我想将一个新矩阵连接到这个,矩阵名为datesNumpy,形状为(11159,12),它们具有相同的行数,因此可能为了连接它,名为tfidf3的新矩阵的形状应为(11159,1997),

import numpy as np
tfidf2 = tdf.transform(list_cluster)
print("Shape tfidf2",tfidf2.shape)
listAux=[]
for l in listMonth:
        listAux.append([int(y) for y in l])
datesNumpy=np.array([np.array(xi) for xi in listAux])
print("Shape datesNumpy",datesNumpy.shape)

我试过了:

tfidf3=np.stack((tfidf2, datesNumpy), axis=-1)

但是我得到了,我感谢支持克服这种情况:

Shape tfidf2 (11159, 1985)
Shape datesNumpy (11159, 12)
Traceback (most recent call last):
  File "Main.py", line 235, in <module>
    tfidf3=np.stack((tfidf2, datesNumpy), axis=-1)
  File "/usr/local/lib/python3.5/dist-packages/numpy/core/shape_base.py", line 339, in stack
    raise ValueError('all input arrays must have the same shape')
ValueError: all input arrays must have the same shape

从这里得到反馈后我试了一下:

tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1)

但我得到了:

Traceback (most recent call last):
  File "Main.py", line 235, in <module>
    tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1)
ValueError: zero-dimensional arrays cannot be concatenated

1 个答案:

答案 0 :(得分:4)

  

numpy.stack(数组,轴= 0)

     

沿新轴加入一系列数组。

     

axis参数指定新轴的索引   结果的维度。例如,如果axis = 0,它将是第一个   维度和if轴= -1,它将是最后一个维度。

     

参数:

     

数组:array_like的序列每个数组必须具有相同的形状

     

axis :int,optional结果数组中的轴,输入数组堆叠在该轴上。

     

返回:

     

堆积:ndarray   堆叠数组的尺寸比输入数组多一个。

根据文档必须具有相同的形状。

您必须是concatenate

示例:

tfidf2 = np.zeros((11159, 1985))
datesNumpy = np.ones((11159, 12))

tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1)
print(tfidf3.shape)

输出:

(11159, 1997)