2017-03-09 63 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])