我想创建一个空数组,并将项附加到它,一次一个。
xs = []
for item in data:
xs.append(item)
我可以用NumPy数组使用这种列表风格的符号吗?
我想创建一个空数组,并将项附加到它,一次一个。
xs = []
for item in data:
xs.append(item)
我可以用NumPy数组使用这种列表风格的符号吗?
当前回答
为了创建一个空的NumPy数组而不定义它的形状,你可以做以下事情:
arr = np.array([])
首选第一个,因为您知道将使用它作为NumPy数组。NumPy将其转换为np。Ndarray类型之后,没有额外的[]'维度'。
要向数组中添加新元素,我们可以这样做:
arr = np.append(arr, 'new element')
请注意,在python的后台,没有数组这样的东西 定义它的形状。正如@hpaulj提到的那样,这也会产生一个单秩 数组中。
其他回答
也许你正在寻找的是这样的东西:
x=np.array(0)
通过这种方式,您可以创建一个没有任何元素的数组。它类似于:
x=[]
通过这种方式,您可以提前向数组中添加新元素。
另一个创建空数组的简单方法是:
import numpy as np
np.empty((2,3), dtype=object)
为了创建一个空的NumPy数组而不定义它的形状,你可以做以下事情:
arr = np.array([])
首选第一个,因为您知道将使用它作为NumPy数组。NumPy将其转换为np。Ndarray类型之后,没有额外的[]'维度'。
要向数组中添加新元素,我们可以这样做:
arr = np.append(arr, 'new element')
请注意,在python的后台,没有数组这样的东西 定义它的形状。正如@hpaulj提到的那样,这也会产生一个单秩 数组中。
如果你完全不知道数组的最终大小,你可以像这样增加数组的大小:
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。
你可以应用它来构建任何类型的数组,比如0:
a = range(5)
a = [i*0 for i in a]
print a
[0, 0, 0, 0, 0]