为什么numpy的linspace不支持dtype指定?

2 投票
1 回答
1824 浏览
提问于 2025-04-18 04:59

我在想,为什么 numpy.linspace 这个函数没有像 numpy.arraynumpy.zerosnumpy.ones 那样可以指定数据类型的选项呢?这是有什么原因吗?是不是说如果我知道要使用某种特定的数据类型,最好还是用 numpy.array 呢?

补充:好的,我想我明白了:linspace 默认创建的是浮点数数组,这样也说得通,因为间隔不一定支持其他数据类型。除此之外,用 linspace 创建的数组和用 np.array([N], dtype=float) 创建的数组之间还有其他根本性的区别吗?

1 个回答

0

不,除了数组的内容之外,显然没有其他区别。

查看一下 linspace 的源代码,它是通过 arange 来创建数组的。arange 返回的是一个整数数组,然后通过乘以 step(这是一个浮点数)来转换成浮点数。

另一方面,arange (链接) 允许你选择 dtype(数据类型)。如果你想要创建一个不同 dtypelinspace,你可以修改 linspace 的代码,并传递一个不同的 dtypearange

撰写回答