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

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

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


当前回答

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

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

其他回答

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

arr = np.array([])

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

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

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

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

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

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

如果你完全不知道数组的最终大小,你可以像这样增加数组的大小:

my_arr = numpy.zeros((0,5))
for i in range(3):
    my_arr=numpy.concatenate( ( my_arr, numpy.ones((1,5)) ) )
print(my_arr)

[[ 1.  1.  1.  1.  1.]  [ 1.  1.  1.  1.  1.]  [ 1.  1.  1.  1.  1.]]

注意第一行的0。 numpy。Append是另一个选项。它调用numpy.concatenate。

最简单的方法

输入:

import numpy as np
data = np.zeros((0, 0), dtype=float)   # (rows,cols)
data.shape

输出: (0,0)

输入:

for i in range(n_files):
     data = np.append(data, new_data, axis = 0)

下面是一些使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。)