Python、Numpy:将新数组强制转换为浮点类型

3

我时不时会写出这样的代码:

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个回答

9
没有更改源代码的情况下是不行的。您可以选择以下几个选项: 习惯在数字末尾加上小数点:
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)

6

使用dtype参数,详见此处

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

3
我认为问题是如何将默认的 dtype=None 更改为 dtype=float - Ashwini Chaudhary
添加一个包装函数...你不能更改np的数据类型:`>>> np.dtype='float'
np.array([1, 2, 3]) array([1, 2, 3])`
- 0x90

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接