【发布时间】:2020-02-23 10:17:24
【问题描述】:
如何从大于 2 个维度的 numpy 数组中选择一个随机窗口,其中窗口相对于 2 个不同维度是随机的?
我想做一些与这篇文章中的答案类似的事情,但是是 3 个维度,而不是 2 个维度: Selecting Random Windows from Multidimensional Numpy Array Rows
我试图矢量化的示例(即我试图避免 for 循环):
import random
import numpy as np
ls = []
m = 3 # sequence length
k = 8 #batch_size
np_3D_array = np.random.randint(0,100, size = (5,7,4)) #random 3D array
for ii in range(k):
random_sheet = random.randint(0,np_3D_array.shape[0] - 1)
random_row = random.randint(0, np_3D_array.shape[1] - m)
ls.append(np_3D_array[random_sheet, random_row:random_row + m , :])
final_output = np.array(ls)
print(final_output.shape) #prints (8, 3, 4) to stdoout
【问题讨论】:
-
请在你的问题更清楚。
-
发布的解决方案是否解决了您的问题?
-
我仍在实施/测试它们。我会告诉你的,谢谢!
标签: python arrays numpy vectorization