我正在运行Python 2.7.9。我有两个numpy数组(100000 x 142和100000 x 20),我想连接成1,100000 x 162数组。
以下是我正在运行的代码:
import numpy as np
import pandas as pd
def ratingtrueup():
actones = np.ones((100000, 20), dtype='f8', order='C')
actualhhdata = np.array(pd.read_csv
('C:/Users/Desktop/2015actualhhrating.csv', index_col=None, header=None, sep=','))
projectedhhdata = np.array(pd.read_csv
('C:/Users/Desktop/2015projectedhhrating.csv', index_col=None, header=None, sep=','))
adjfctr = round(1 + ((actualhhdata.mean() - projectedhhdata.mean()) / projectedhhdata.mean()), 5)
projectedhhdata = (adjfctr * projectedhhdata)
actualhhdata = (actones * actualhhdata)
end = np.concatenate((actualhhdata.T, projectedhhdata[:, 20:]), axis=1)
ratingtrueup()
我收到以下值错误:
文件" C:/Users/PycharmProjects/TestProjects/M.py", 第16行,在ratingtrueup中 end = np.concatenate([actualhhdata.T,projectedhhdata [:,20:]],axis = 1)ValueError:所有输入数组维度除外 连接轴必须完全匹配
我已经确认这两个阵列都是&numpy.ndarry'。
有没有办法检查输入数组的尺寸,看看我哪里出错了。
提前谢谢。
答案 0 :(得分:2)
我会在concatenate
:
actualhhdata = (actones * actualhhdata)
print(acutalhhdata.T.shape, projectedhhdata[:,20:].shape)
end = np.concatenate((actualhhdata.T, projectedhhdata[:, 20:]), axis=1)
对于更多生产环境,您可能想要添加某种测试
e.g。
x,y=np.ones((100,20)),np.zeros((100,10))
assert x.shape[0]==y.shape[0], (x.shape,y.shape)
np.concatenate([x,y],axis=1).shape