python,numpy:强制新数组为float类型

时间:2014-02-09 20:55:21

标签: python numpy

我不时地编写这样的代码:

import numpy as np   
a = np.array([1,2,3])
a[1]=3.3
a[2] *= 50
print(a)

在此,我没有将a作为int初始化,而是float,但正如我所说,我忘了它。

现在有一种方法可以确保这些初始化默认为float,除非明确指定dtype吗?

2 个答案:

答案 0 :(得分:5)

不是没有改变来源,没有。您的选择是:

养成在数字末尾添加点数的习惯:

np.array([1.,2.,3.])

明确使用dtype

np.array([1,2,3], dtype=float)

制作新功能:

def ozi_array(*args, **kwargs):
    if 'dtype' not in kwargs:
        return np.array(*args, dtype=float, **kwargs)
    return np.array(*args, **kwargs)

答案 1 :(得分:4)

使用dtype参数,请参阅here

>>> import numpy as np
>>> np.array([1, 2, 3], dtype=float)
array([ 1.,  2.,  3.])