更改 python 中数组的数据类型

Change datatype of array in python

我收到这个错误:

MemoryError: Unable to allocate array with shape (3000, 525571) and data type float64 

对于此代码行:

Qday = Q.resample('D').sum()

在发生这种情况之前,我在另一行遇到了几乎相同的错误,但在那里我找到了解决方案:

Q = pd.DataFrame(Q_tmp, index=Th.index).astype(np.float32) #MemoryError!

float32 对我来说已经足够了,但我如何设置数组以使用这种类型?

或者我可以全局将默认值从 float64 更改为 float32 吗?

在 numpy 导入后使用此代码,它可以工作。 :-)

import numpy as np
_oldarray = np.array
def array32(*args, **kwargs):
    if 'dtype' not in kwargs: 
        kwargs.update(dtype=float32)
    _oldarray(*args, **kwargs)
np.array = _oldarray