gpt4 book ai didi

python - 引导 numpy 二维数组

转载 作者:行者123 更新时间:2023-11-28 17:59:45 29 4
gpt4 key购买 nike

我正在尝试通过替换 base 形状为 (4,2) 的 2D numpy 数组按行进行采样,比如 10 次。最终输出应该是一个 3D numpy 数组。

尝试了下面的代码,它有效。但是有没有不用 for 循环的方法呢?

base=np.array([[20,30],[50,60],[70,80],[10,30]])
print(np.shape(base))
nsample=10
tmp=np.zeros((np.shape(base)[0],np.shape(base)[1],10))
for i in range(nsample):
id_pick = np.random.choice(np.shape(base)[0], size=(np.shape(base)[0]))
print(id_pick)
boot1=base[id_pick,:]
tmp[:,:,i]=boot1
print(tmp)

最佳答案

这是一种矢量化方法 -

m,n = base.shape
idx = np.random.randint(0,m,(m,nsample))
out = base[idx].swapaxes(1,2)

基本思想是我们用 np.random.randint 生成所有可能的索引作为 idx。那将是一个形状为 (m,nsample) 的数组。我们使用此数组沿第一个轴索引输入数组。因此,它从 base 中选择随机行。要获得形状为 (m,n,nsample) 的最终输出,我们需要交换最后两个轴。

关于python - 引导 numpy 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264456/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com