【问题标题】:Why do numpy array turns int into float为什么numpy数组将int变成float
【发布时间】:2019-01-07 12:13:24
【问题描述】:

我正在尝试用整数填充数组,但似乎 numpy 数组不断将整数转换为浮点数。为什么会发生这种情况,我该如何阻止这种情况?

arr = np.empty(9)
arr[3] = 7
print(arr[3])
>>>7.0

【问题讨论】:

  • 你在分配arr[3]之前检查过arr的数据类型吗?
  • np.empty 的默认 dtype 是 float:docs.scipy.org/doc/numpy-1.14.0/reference/generated/…
  • @AnkitJaiswal 这不是,而且从来都不是关闭的适当理由。充其量,这是投反对票的理由,而您本可以这样做。
  • 谢谢,@user2285236,我在使用 np.empty() 时必须指定数据类型

标签: python numpy numpy-dtype


【解决方案1】:

NumPy 数组与 Python 列表不同,它只能包含一个类型,(据我所知)在创建时设置。您放入数组的所有内容都会转换为该类型。

默认情况下,数据类型假定为float。要设置其他类型,您可以将dtype 传递给empty 函数,如下所示:

>>> arr = np.empty(9, dtype=int)
>>> arr[3] = 7
>>> arr[3]
7

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2011-06-11
    • 2019-12-04
    • 2021-03-06
    相关资源
    最近更新 更多