我有一个以下尺寸的numpy数组:
(1611216,2)
我尝试将其重塑为(804,2004)
使用:
df = np.reshape(df, (804, 2004))
但是它给出了一个错误:
Traceback (most recent call last):
File "Z:/Seismic/Geophysical/99_Personal/Abhishake/RMS_Machine_learning/RMS_data_analysis.py", line 19, in <module>
df = np.reshape(df, (804, 2004))
File "C:\python36\lib\site-packages\numpy\core\fromnumeric.py", line 232, in reshape
return _wrapfunc(a, 'reshape', newshape, order=order)
File "C:\python36\lib\site-packages\numpy\core\fromnumeric.py", line 57, in _wrapfunc
return getattr(obj, method)(*args, **kwds)
ValueError: cannot reshape array of size 3222432 into shape (804,2004)
df = np.reshape(df,(804,2004))
但是它给出了一个错误: 追溯(最近一次通话): 第19行中的文件“ Z:/地震/地球物理/99_Personal/Abhishake/RMS_Machine_learning/RMS_data_analysis.py” df = np.reshape(df,(804,2004)) 重塑文件“ C:\ python36 \ lib \ site-packages \ numpy \ core \ fromnumeric.py”,第232行 return _wrapfunc(a,'reshape',newshape,order = order) _wrapfunc中的文件“ C:\ python36 \ lib \ site-packages \ numpy \ core \ fromnumeric.py”,第57行 返回getattr(obj,method)(* args,** kwds) ValueError:无法将大小为3222432的数组重塑为形状(804,2004)
答案 0 :(得分:0)
您无法将(1611216,2)numpy数组重塑为(804,2004)。
这是因为1611216 x 2 = 3,222,432和804 x 2004 = 1,611,216。两个数组在大小上的差异非常大。我认为您必须为numpy数组提出另一组尺寸,这取决于您要如何使用数组。
提示:(1608,2004)将是有效的重塑形式。