猿问

迭代 n 行数组,然后在 python 中迭代下 n 行等等

我有看起来像这样的 C 数组


array([23, 23, 23, ..., 68, 34, 42])

它的索引存储在另一个数组 D 中,它看起来像


array([[23989, 10991, 81533, ..., 75050, 13817, 47678],

       [54864, 54830, 89396, ..., 22709, 14556, 62298],

       [ 2936, 28729,  4404, ..., 21431, 81187, 49178],

       ...,

       [30737, 12974, 41031, ..., 43003, 61132, 33385],

       [64713, 53207, 49529, ..., 72596, 76406, 15207],

       [29503, 71648, 27210, ..., 31298, 47102, 13024]])

每行包含大约 30 个 C 的随机索引。我想要做的是使用前 10 行作为 C 的 300 个随机抽取的索引,然后使用接下来的 10 行来处理接下来的 300 个随机抽取的索引等等。


我可以使用代码从 C 中随机抽取 1000 组 30 个观察值


means_size_30 = C[D].mean(axis=1)

plt.hist(means_size_30)

plt.axvline(np.mean(C))

但是我如何获得 10 行然后接下来的 10 行才能获得所需的结果?添加 for 循环只会让我得到单行的平均值(有 30 个观察值),我想要的是前 10 行的平均值,然后是接下来的 10 行等等。


for i in range(0,1000,10):

    means_size_300 = C[D[i:i+10,:]].mean(axis=1)

    print(C[D[i:i+10,:]])

    print(means_size_300)

plt.hist(means_size_300)

plt.axvline(np.mean(C))


沧海一幻觉
浏览 100回答 1
1回答

胡子哥哥

使用循环:for row_index in range(0, n, 10):      array[row_index:row_index+10, :]
随时随地看视频慕课网APP

相关分类

Python
我要回答