有没有办法在开头用单行代码控制numpy矩阵操作或类似的东西?我的内存不足,想要控制我的所有矩阵都在'float32'
之下。或者至少,是否有一种比我用.astype('float32')
逐个转换所有矩阵更短的方式?
答案 0 :(得分:0)
您可以尝试制作插入式替换模块
import sys
class __the_module__:
def __init__(self):
import numpy as __np
import functools as __fu
self.__dict__.update(__np.__dict__)
@__fu.wraps(__np.array)
def __f(*args, dtype=__np.float32, **kwds):
return __np.array(*args, dtype=dtype, **kwds)
self.array = __f
# must do this for all functions you want to engineer
sys.modules[__name__] = __the_module__()
然后你将导入而不是numpy
import np32 as np
# this we engineered
np.array([1.0])
# array([ 1.], dtype=float32)
# other stuff will just be passed through
np.arange(8)
# array([0, 1, 2, 3, 4, 5, 6, 7])
但仍有一些工作要做。它不会深入工作。