我如何使用for循环在numpy中迭代堆叠行
How can i iteratively stack rows in numpy using for loop
我正在尝试将行迭代添加到我的二维 np.array
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack(fn(i))# function returns array
因此我总是只得到我堆叠的最后一个数组
谁能解释一下如何堆叠所有行以及为什么这不起作用
您必须在 vstack 上添加 A:
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack([A,fn(i)])# function returns array
迭代时不应该 vstack
,因为它会人为地增加内存使用量,如 中所述。
其次,假设 fn(i)
returns 一个你想附加到 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))
您可以在 numpy.vstack docs
中阅读更多内容
我正在尝试将行迭代添加到我的二维 np.array
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack(fn(i))# function returns array
因此我总是只得到我堆叠的最后一个数组 谁能解释一下如何堆叠所有行以及为什么这不起作用
您必须在 vstack 上添加 A:
A = np.zeros((1,14),dtype = float)
for i in arr:
A = np.vstack([A,fn(i)])# function returns array
迭代时不应该 vstack
,因为它会人为地增加内存使用量,如
其次,假设 fn(i)
returns 一个你想附加到 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))
您可以在 numpy.vstack docs
中阅读更多内容