我正在尝试迭代地将行添加到我的二维 np.array
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack(fn(i))# function returns array
结果我总是只得到我堆叠的最后一个数组有人可以解释一下如何堆叠所有行以及为什么这不起作用
您不应该vstack
在迭代时,因为它会人为地增加内存使用量,正如在这个类似的问题中所解释的,但与 pandas 相关。
其次,假设fn(i)
返回一个要附加到的新数组A
,那么该行应该是A = np.vstack((A, fn(i))
考虑到这一切,更好的选择是创建所有数组并将其收集到一个列表中,以便以后堆叠。
A = np.zeros((1, 14), dtype=float)
arrays = [A] + [fn(i) for i in arr] # assuming `arr` is an iterable
A = np.vstack(tuple(arrays))
您必须在 vstack 上添加 A:
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack([A,fn(i)])# function returns array