2014-02-21 30 views
3

我第一次和numpy一起工作,并且遇到了浮点数组的一些非常奇怪的问题。真奇怪的numpy数组浮点行为

这是非常基本的,我可能错过了一些非常明显的东西 - 任何人都可以告诉我什么是问题?

的代码

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

产生这种输出这两行:

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

那......也不对。我究竟做错了什么?

谢谢你的帮助!

回答

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)   

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

numpy.ndarraydocstring

阵列应该使用arrayzerosempty构成。

2

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

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