真的很奇怪的numpy数组浮点行为

3

我第一次使用numpy,遇到了一些有关浮点数组的奇怪问题。

这非常基础,我可能遗漏了一些非常明显的东西--有人能告诉我问题出在哪里吗?

以下是两行代码:

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

生成以下输出:

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

这不对。我做错了什么?

非常感谢任何帮助!

2个回答

4

在创建数组时,应使用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)         

所以,第一个参数是形状而不是数组。因此,numpy用一些随机数据填充了您的数组。
numpy.ndarraydocstring中可以看到:
引用: 数组应使用arrayzerosempty构建。

2
您需要指定的参数是形状。要填充数据,您需要指定缓冲区参数。
np.ndarray(shape=(1,2), buffer=np.array([1,2]), dtype=float)

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