【问题标题】:Numpy array not updated when assigning unexpected value to dtype('int64') using math.erf()使用 math.erf() 为 dtype('int64') 分配意外值时未更新 Numpy 数组
【发布时间】:2014-12-27 21:51:38
【问题描述】:

我只是想将math.erf() 的输出写入一个 numpy 数组。 我所做的只是:

import numpy as np
import math
a=np.array([0,0,0])
a[0]=math.erf(5)

但是,a 永远不会更新以保存 math.erf() 的输出值,它应该只是一个浮点数。 我做错了什么?

更新

a 通过a=np.asarray(a) 从列表中创建时,它似乎可以工作。

【问题讨论】:

  • 考虑到克雷格的回答,真正的问题不在于math.erf。更改问题标题以反映意外地将小浮点值分配给 int 并始终为零的问题将是“不错的”。

标签: arrays math numpy int


【解决方案1】:

它确实得到了更新,但它并没有改变它们的数组类型,因此值似乎没有改变。请注意

a=np.array([0,0,0])
a.dtype

返回

dtype('int64')

由于math.erf(5)

作为替代方案(有很多方法可以创建特定类型的数组)

a=np.array([0,0,0],dtype=float)
a[0]=math.erf(5)

做你期望的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2013-01-06
    • 2015-07-04
    • 1970-01-01
    • 2019-12-26
    相关资源
    最近更新 更多