我有一个非常大的二维数组,看起来像这样:
a= [[a1, b1, c1], [a2, b2, c2], ..., [an, bn, cn]]
使用 numpy,是否有一种简单的方法可以从初始数组中获取一个新的二维数组,例如 2 个随机行a(无需替换)?
a
例如
b= [[a4, b4, c4], [a99, b99, c99]]
>>> A = np.random.randint(5, size=(10,3)) >>> A array([[1, 3, 0], [3, 2, 0], [0, 2, 1], [1, 1, 4], [3, 2, 2], [0, 1, 0], [1, 3, 1], [0, 4, 1], [2, 4, 2], [3, 3, 1]]) >>> idx = np.random.randint(10, size=2) >>> idx array([7, 6]) >>> A[idx,:] array([[0, 4, 1], [1, 3, 1]])
将其放在一起用于一般情况:
A[np.random.randint(A.shape[0], size=2), :]
对于非替换(numpy 1.7.0+):
A[np.random.choice(A.shape[0], 2, replace=False), :]
我不相信在 1.7 之前有一种无需替换即可生成随机列表的好方法。也许您可以设置一个小的定义,以确保两个值不相同。