2017-03-09 127 views
3

我想重塑一个向量到一个数组的Python NumPy的:重塑已被弃用

myArray = np.reshape(myVector,[nCol,nRow]) 

但我得到一个警告折旧:

FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead 
    return reshape(newshape, order=order) 

当我使用

myArray = np.values.reshape(myVector,[nCol,nRow]) 

我收到一条错误

AttributeError: module 'numpy' has no attribute 'values' 

请有人可以解释发生了什么,我应该做什么?非常感谢

+6

这不是numpy的警告。 'myVector'是一个熊猫物体吗? –

+0

@WarrenWeckesser是的,myVector是来自更大数据框的一列。对不起,我忽略了 – jlt199

+0

你需要在重塑它之前访问numpy数组对象然后'np.reshape(myVector.values,(nCol,nRow))' – Psidom

回答

3

调用np.reshape(不管参数)不再是调用函数的首选方式。相反,使用此:

myArray = myVector.values.reshape([nCol,nRow])

+1

与刚才指出的问题无关,这不是由numba支持的 – muon

0

我已经解决了使用这个我的问题:

train_set_X = train_df["STRAIGHT_DIST"] 
train_set_X_np = np.array(train_set_X) 
train_set_X_np = train_set_X_np.reshape([train_set_X.shape[0], 1]) 

在特定情况下,你应该使用这样的:

myVector_np = np.array(myVector) 
myVector_np = myVector_np.reshape([myVector.shape[0], 1])