【问题标题】:Really strange numpy array floating point behavior真的很奇怪的numpy数组浮点行为
【发布时间】:2014-02-21 09:59:05
【问题描述】:

我是第一次使用 numpy,但在浮点数组方面遇到了一些非常奇怪的问题。

这是非常基本的,我可能在这里遗漏了一些非常明显的东西——谁能告诉我问题出在哪里?

这两行代码

arr1 = numpy.ndarray([1.0, 2.0])
print "arr1: ", arr1

产生这个输出:

arr1:  [[  1.49166815e-154  -1.32750723e-315]]

那……不对。我做错了什么?

感谢您的帮助!

【问题讨论】:

    标签: python arrays numpy floating-point


    【解决方案1】:

    您应该使用numpy.array 创建数组而不是numpy.ndarraynumpy.ndarray 是一个低级接口,在大多数情况下应该使用numpy.array 来创建一个数组。

    In [5]: arr1 = numpy.array([1.0, 2.0])                                                            
    
    In [6]: arr1
    Out[6]: array([ 1.,  2.])
    

    numpy.ndarray的签名:

    ndarray(shape, dtype=float, buffer=None, offset=0, strides=None, order=None)         
    

    所以,第一个参数是 shape 而不是数组。所以,numpy 用一些随机数据填充了你的数组。

    来自numpy.ndarraydocstring

    应使用arrayzerosempty 构造数组。

    【讨论】:

      【解决方案2】:

      您指定的参数是形状。要填充数据,您需要指定缓冲区参数。

      np.ndarray(shape=(1,2), buffer=np.array([1,2]), dtype=float)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-22
        • 2014-01-07
        • 1970-01-01
        相关资源
        最近更新 更多