我只是在玩数字游戏。
我发现Numpy提供了一个名为np.vectorize的函数,允许您获取一个函数并将其应用于Numpy数组。
在[23]中:import numpy as np
import decimal
D = decimal.Decimal
我们将创建一个常规的np浮点数组
在[24]中:f10 = np.random.ranf(10)
f10
出[24]:array([ 0.45410583, 0.35353919, 0.5976785 , 0.12030978, 0.00976334,
0.47035594, 0.76010096, 0.09229687, 0.24842551, 0.30564141])
尝试使用np.asarray将数组转换为十进制类型不起作用。似乎尝试使用np.asarray并指定decimal.decimal类型会将数组设置为预期的object,但如果实际访问数组的单个元素,则它仍然具有float数据类型。
在[25]中:f10todec = np.asarray(f10, dtype = decimal.Decimal)
print f10todec.dtype, f10todec
print type(f10todec[0])
object [0.454105831376884 0.3535391906233327 0.5976785016396975 0.1203097778312584
0.009763339031407026 0.47035593879363524 0.7601009625324361
0.09229687387940333 0.24842550566826282 0.30564141425653435]