DataReader = pd.read_csv('Quality.csv')
...
ip = [DataReader.x1, DataReader.x2, DataReader.x3, DataReader.x4,........., DataReader.x12,
DataReader.x13]
op = DataReader.y
ip = np.matrix(ip).transpose()
op = np.matrix(op).transpose()请帮助解决下面的错误。Python 3.7v和numpy 1.17v
Traceback (most recent call last):
File "Quality.py", line xx, in <module>
ip = np.matrix(ip).transpose()
File "\\defmatrix.py", line 147, in __new__
arr = N.array(data, dtype=dtype, copy=copy)
**ValueError: cannot copy sequence with size 13 to array axis with dimension 200**发布于 2020-07-02 14:28:15
我们从一个200行14列的数据帧开始。它的.values属性(或to_numpy()方法结果)将是一个(200,14)形数组。
在:
ip = [DataReader.x1, DataReader.x2, ...DataReader.x13]DataReader.x1是一个专栏,一个熊猫系列。它的.values是一个一维阵列,(200 )形状。我期望np.array(ip)是一个(13,200)数组。
如果你做了
ip.DataReader[['x1','x2',...,'x13']].values结果将是一个(200,13)数组。
使用简单的数据帧,您的代码应该不会产生错误:
In [61]: df = pd.DataFrame(np.arange(12).reshape(4,3), columns=['a','b','c'])
In [63]: df.values
Out[63]:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In [65]: ip = [df.a, df.b, df.c]
In [67]: np.array(ip)
Out[67]:
array([[ 0, 3, 6, 9],
[ 1, 4, 7, 10],
[ 2, 5, 8, 11]])np.matrix(ip).transpose()也同样有效(尽管不需要使用np.matrix而不是np.array)。
我不能重现你的错误。从某些混合的赋形数组生成array会产生如下错误
ValueError: could not broadcast input array from shape (3) into shape (1)或者在其他情况下是对象数组(of Series)。
====
对于一列,我希望得到的是一维数组,或者如果需要的话,可以重塑。
In [82]: df.a
Out[82]:
0 0
1 3
2 6
3 9
Name: a, dtype: int64
In [83]: df.a.values
Out[83]: array([0, 3, 6, 9])
In [84]: df.a.values[:,None]
Out[84]:
array([[0],
[3],
[6],
[9]])https://stackoverflow.com/questions/62682615
复制相似问题