一次控制所有numpy矩阵操作作为类型(' float32')

时间:2017-11-29 04:49:30

标签: python python-2.7 numpy matrix

有没有办法在开头用单行代码控制numpy矩阵操作或类似的东西?我的内存不足,想要控制我的所有矩阵都在'float32'之下。或者至少,是否有一种比我用.astype('float32')逐个转换所有矩阵更短的方式?

1 个答案:

答案 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])

但仍有一些工作要做。它不会深入工作。