自动 ndarray 连接和循环

automatic ndarray concatenation along with a loop

我有以下代码实现来对 numpy 数组执行分位数计算。

x1 = np.random.rand(10,3,2)
for i in np.arange(0.1,0.2,0.05):
    x= np.quantile(x1, i,axis=0)
    print(x.shape)

可以看出循环时生成的x数组的形状为(3, 2)。我需要的是将这些生成的 x 数组连接在一起。对于这种情况,我想要一个形状为 (2,3,2) 的串联数组。如何进行这种串联。

您可以将要计算的 所有 分位数作为列表传递给 np.quantile 或 array-like:

In [2]: x = np.random.rand(10,3,2)

In [3]: np.quantile(x, np.arange(0.1, 0.2, 0.05), axis=0).shape
Out[3]: (2, 3, 2)

In [4]: np.quantile(x, np.arange(0.1, 0.2, 0.05), axis=0)
Out[4]:
array([[[0.25278165, 0.20236969],
        [0.34814603, 0.22170499],
        [0.12397841, 0.08714209]],

       [[0.29549464, 0.21931808],
        [0.35593299, 0.25053593],
        [0.17244185, 0.11209505]]])