有没有办法确认numpy中的所有输入数组维度?

时间:2015-04-30 00:38:43

标签: python arrays numpy

我正在运行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'。

有没有办法检查输入数组的尺寸,看看我哪里出错了。

提前谢谢。

1 个答案:

答案 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