重塑大型numpy数组的问题

时间:2018-10-21 07:13:58

标签: python-3.x numpy

我有一个以下尺寸的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)

1 个答案:

答案 0 :(得分:0)

您无法将(1611216,2)numpy数组重塑为(804,2004)。

这是因为1611216 x 2 = 3,222,432和804 x 2004 = 1,611,216。两个数组在大小上的差异非常大。我认为您必须为numpy数组提出另一组尺寸,这取决于您要如何使用数组。

提示:(1608,2004)将是有效的重塑形式。