我想创建一个空数组,并将项附加到它,一次一个。
xs = []
for item in data:
xs.append(item)
我可以用NumPy数组使用这种列表风格的符号吗?
我想创建一个空数组,并将项附加到它,一次一个。
xs = []
for item in data:
xs.append(item)
我可以用NumPy数组使用这种列表风格的符号吗?
当前回答
下面是一些使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。)
其他回答
可以使用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]])
编辑 当然,正如在其他答案中提到的,除非你在矩阵/数组上做一些处理(例如反转),每次你添加一些东西到它,我只会创建一个列表,添加到它,然后将它转换为数组。
如果你完全不知道数组的最终大小,你可以像这样增加数组的大小:
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。
我认为你可以像这样创建空numpy数组:
>>> import numpy as np
>>> empty_array= np.zeros(0)
>>> empty_array
array([], dtype=float64)
>>> empty_array.shape
(0,)
当您想在循环中追加numpy数组时,这种格式非常有用。
为了创建一个空的NumPy数组而不定义它的形状,你可以做以下事情:
arr = np.array([])
首选第一个,因为您知道将使用它作为NumPy数组。NumPy将其转换为np。Ndarray类型之后,没有额外的[]'维度'。
要向数组中添加新元素,我们可以这样做:
arr = np.append(arr, 'new element')
请注意,在python的后台,没有数组这样的东西 定义它的形状。正如@hpaulj提到的那样,这也会产生一个单秩 数组中。
最简单的方法
输入:
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)