如何生成包含在 numpy 数组中的随机字符串对

How to generate random pairs of strings contained in a numpy array

假设我有以下 numpy 字符串数组:

a = numpy.array(['apples', 'foobar', ‘bananas’, 'cowboy'])

我想从另一个 numpy 矩阵中的那个矩阵生成 len(a)/2 个随机字符串对,而不在每对中重复元素,每对具有唯一对并且每对具有唯一值(每个值都是唯一的每对)。我还需要修复随机数生成器,以便无论算法 运行 多少次,对始终相同。可以吗?

numpy.random.choice

random.choice 方法可能会实现您的目标。

import numpy as np

n_samples = 2

# Set the random state to the same value each time,
# this ensures the pseudorandom array that's generated is the same each time.
random_state = 42
np.random.seed(random_state)


a = np.array(['apples', 'foobar', ‘bananas’, 'cowboy'])

new_a = np.random.choice(a, (2, n_samples), replace=False)

replace=False 确保一个元素只被使用一次,这将产生以下输出。

array([['foobar', 'cowboy'],
       ['bananas', 'apples']], dtype='<U7')