2016-12-27 3 views
1

Здравствуйте, у меня есть следующая матрица, называемая tfidf2, форма этой матрицы равна (11159, 1985), она содержит 11159 строк и столбцы 1985 года. Я хотел бы объединить новую матрицу с этой матрицей, которая называется dateNumpy, которая имеет форма (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 
+0

'np.hstack' должны сделать – cel

+0

http://stackoverflow.com/questions/41338677/how -to-add-the-after-feature-to-tfidf-matrix. Этот плакат раньше пытался «hstack». Здесь есть другая информация, которую мы не знаем. '@ neo33' - вы должны редактировать свою старшую должность, а не повторять ее без небольшой новой информации. Вы уже в диалоге со мной на этом посту. – hpaulj

+0

@hpaulj, спасибо за поддержку, какую информацию вам нужно, чтобы помочь мне ?, теперь после того, как у меня есть чистые массивы numpy, я снова пытаюсь поблагодарить за поддержку – neo33

ответ

4

numpy.stack (массивы, ось = 0)

Присоедините последовательность массивов вдоль новой оси.

Параметр оси указывает индекс новой оси в измерениях результата . Например, если ось = 0, это будет первое измерение , а если ось = -1, это будет последнее измерение.

Параметры:

массивы: последовательность array_like каждого массива должны иметь одинаковую форму.

ось: int, необязательный Ось в массиве результатов, вдоль которой располагаются массивы ввода.

Возвращает:

сложены: ndarray сложены массив имеет еще одно измерение, чем входных массивов.

В соответствии с документацией должна быть одинаковая форма.

Вы должны быть concatenate

Пример:

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

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

выход:

(11159, 1997) 
+0

Спасибо за поддержку, но я не смог достичь нужной матрицы, – neo33

+1

@ neo33 Вы уверены у ваших матриц есть данные ?, print tfidf2.shape и dateNumpy.shape before of concatenate – eyllanesc

+0

Я попытался выполнить печать, и я получаю (11159, 12) (11159, 1985), я считаю, что, возможно, она терпит неудачу, поскольку tfidf2 является разреженная матрица, – neo33

Смежные вопросы