当我使用数据框的最后一行构建矩阵时:
x = w.iloc[-1, :]
a = np.mat(x).T
它会发生:
ValueError: ndarray is not contiguous
`打印x个显示(我的数据框中有61列):
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
如何解决?非常感谢
答案 0 :(得分:0)
使用np.array
代替np.mat
:
a = np.array(x).T
答案 1 :(得分:0)
np.mat需要输入的数组形式。 参考文档 doc
所以您的代码应该是
x = w.iloc[-1, :].values
a = np.mat(x).T
.values将给出数据帧值的numpy数组格式,因此np.mat将起作用。