我第一次使用numpy并且遇到了浮点数组的一些非常奇怪的问题。
这是非常基本的,我可能会遗漏一些非常明显的东西 - 谁能告诉我这是什么问题?
这两行代码
arr1 = numpy.ndarray([1.0, 2.0])
print "arr1: ", arr1
产生这个输出:
arr1: [[ 1.49166815e-154 -1.32750723e-315]]
那是......不对。我做错了什么?
感谢您的帮助!
答案 0 :(得分:4)
您应该使用numpy.array
创建一个不是numpy.ndarray
的数组。 numpy.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.ndarray
的{{3}}:
应使用
array
,zeros
或empty
构建数组。
答案 1 :(得分:2)
您指定的参数是形状。要填充数据,您需要指定缓冲区参数。
np.ndarray(shape=(1,2), buffer=np.array([1,2]), dtype=float)