带有numpy的简单一维浮点数组

时间:2017-06-06 11:23:03

标签: python arrays numpy

我想用numpy创建一个简单的一维数组。

import numpy as np
arr = np.array()  # how do I initialize a float array?

np.append(arr, "3453.2")
np.append(arr, "1321.3")
np.append(arr, "2003.6")

我尝试了np.zeros()np.ones()np.empty()等等。但我无法找到如何初始化一个空数组。

2 个答案:

答案 0 :(得分:2)

浮点数列表中的数组:

arr = np.array([1., 2., 3.])

空数组:

arr = np.empty(shape=())
print(arr.shape)  # ()

清空1d阵列:

arr = np.empty(shape(1,))
print(arr.shape)  # (1,)

目前还不清楚你真正想要的是什么。

阅读the docs about array-creation

重要提示:不要过度使用追加和合作。 /不要经常调整数组的大小!这要求因复制数据而导致性能下降!这不是应该如何使用numpy-array。

构建一个列表(其中append很快),然后在列表准备好后构建一个数组。由于原因,研究附加在列表与数组上!

像:

l = []
l.append(1.)
l.append(2.)
arr = np.array(l)

答案 1 :(得分:0)

您不应该使用空数组和append,因为每个numpy.append都是O(n)操作,这使得数组创建具有O(n**2)性能。

Pythons列表会更好,因为它们已经(摊销)O(1)附加。

但是如果你真的想要一个空数组,你可以使用一个空列表作为np.array的输入:

import numpy as np

arr = np.array([], dtype=float)   # dtype specifies the type of the elements

如果您将空数组视为具有正确大小但尚未使用正确值的数组,则应使用np.empty

arr = np.empty(shape=3, dtype=float)  # 3 element array
arr[0] = 3453.2
arr[1] = 1321.3
arr[2] = 2003.6