我想创建一个空数组,并将项附加到它,一次一个。

xs = []
for item in data:
    xs.append(item)

我可以用NumPy数组使用这种列表风格的符号吗?


当前回答

也许你正在寻找的是这样的东西:

x=np.array(0)

通过这种方式,您可以创建一个没有任何元素的数组。它类似于:

x=[]

通过这种方式,您可以提前向数组中添加新元素。

其他回答

你可以应用它来构建任何类型的数组,比如0:

a = range(5)
a = [i*0 for i in a]
print a 
[0, 0, 0, 0, 0]

可以使用append函数。行:

>>> from numpy import *
>>> a = array([10,20,30])
>>> append(a, [[1,2,3]], axis=0)
array([[10, 20, 30],      
       [1, 2, 3]])

列:

>>> append(a, [[15],[15]], axis=1)
array([[10, 20, 30, 15],      
       [1, 2, 3, 15]])

编辑 当然,正如在其他答案中提到的,除非你在矩阵/数组上做一些处理(例如反转),每次你添加一些东西到它,我只会创建一个列表,添加到它,然后将它转换为数组。

我认为你想用列表处理大部分工作,然后将结果作为矩阵使用。也许这是一种方法;

ur_list = []
for col in columns:
    ur_list.append(list(col))

mat = np.matrix(ur_list)

为了创建一个空的NumPy数组而不定义它的形状,你可以做以下事情:

arr = np.array([])

首选第一个,因为您知道将使用它作为NumPy数组。NumPy将其转换为np。Ndarray类型之后,没有额外的[]'维度'。

要向数组中添加新元素,我们可以这样做:

arr = np.append(arr, 'new element')

请注意,在python的后台,没有数组这样的东西 定义它的形状。正如@hpaulj提到的那样,这也会产生一个单秩 数组中。

下面是一些使numpys看起来更像list的方法

np_arr = np.array([])
np_arr = np.append(np_arr , 2)
np_arr = np.append(np_arr , 24)
print(np_arr)

输出:array([2.], 24。)