xxyao
xxyao

Reputation: 549

ValueError: ndarray is not contiguous

when I build a matrix using the last row of my dataframe:

x = w.iloc[-1, :]
a = np.mat(x).T

it goes:

ValueError: ndarray is not contiguous

`print the x shows(I have 61 columns in my dataframe):

print(x)
cdl2crows              0.000000
cdl3blackcrows         0.000000
cdl3inside             0.000000
cdl3linestrike         0.000000
cdl3outside            0.191465
cdl3starsinsouth       0.000000
cdl3whitesoldiers_x    0.000000
cdl3whitesoldiers_y    0.000000
cdladvanceblock        0.000000
cdlhighwave            0.233690
cdlhikkake             0.218209
cdlhikkakemod          0.000000
                         ...   
cdlidentical3crows     0.000000
cdlinneck              0.000000
cdlinvertedhammer      0.351235
cdlkicking             0.000000
cdlkickingbylength     0.000000
cdlladderbottom        0.002259
cdllongleggeddoji      0.629053
cdllongline            0.588480
cdlmarubozu            0.065362
cdlmatchinglow         0.032838
cdlmathold             0.000000
cdlmorningdojistar     0.000000
cdlmorningstar         0.327749
cdlonneck              0.000000
cdlpiercing            0.251690
cdlrickshawman         0.471466
cdlrisefall3methods    0.000000

Name: 2010-01-04, Length: 61, dtype: float64

how to solve it? so many thanks

Upvotes: 1

Views: 10359

Answers (2)

shantanu pathak
shantanu pathak

Reputation: 2167

np.mat expects array form of input. refer to the doc doc

So your code should be

x = w.iloc[-1, :].values
a = np.mat(x).T

.values will give numpy array format of dataframe values, so np.mat will work.

Upvotes: 1

Deepali
Deepali

Reputation: 291

Use np.array instead of np.mat:

a = np.array(x).T

Upvotes: 1

Related Questions