import numpy as np
a = np.array([
[1, 2, 3, 30],
[4, 5, 6, 60],
[7, 8, 9, 90]
])
n, m = a.shape
b = a[np.random.randint(n, size=m), range(m)]
print(b)
没有 NumPy:
import random
a = [
[1, 2, 3, 30],
[4, 5, 6, 60],
[7, 8, 9, 90]
]
# b = [*map(random.choice, zip(*a))]
# b = list(map(random.choice, zip(*a)))
b = [random.choice(c) for c in zip(*a)]
print(b)
np.arange(n)
- 依次取每一列np.random.randint(m, size=n)
-从到 的n
随机数0
m
正如他们在评论中所说,我的行/列有错误。
正确选项:
使用 NumPy:
没有 NumPy:
任何形状的二维数组的解决方案。将函数应用到列
np.random.choice
。方阵的解。我们打乱线条并去掉主对角线的元素。