用一个可变维度填充 3D numpy 数组

Filling 3D numpy array with one variable dimension

我想填充一个维度为 (?, 100, 100) 的 3D numpy 数组。第一个维度将介于 500 和 1000 之间,但事先未知。我可以使用 append 方法,但这很慢。

是否有另一种方法可以创建这样一个第一个维度事先未知的 3D numpy 数组?使用 for 循环填充 numpy 数组。

其次,假设我有以下两个 numpy 数组:

import numpy as np
arr1 = np.random.randint(0, 100, size=(30, 100, 100))
arr2 = np.random.randint(0, 100, size=(50, 100, 100))

如何沿着第一个维度连接 arr1arr2 以便生成的数组具有形状 (80, 100, 100)?

关于第一个问题,我一直使用np.empty和np.append方法,完全没问题。

arr = np.empty((0, 100, 100), int)
arr = np.append(arr,x,axis=0)

关于第二个问题,append再次有效:

arr3  = np.append(arr1, arr2, axis=0)

也'concatenate'可用:

arr3  = np.concatenate((arr1, arr2), axis=0)