如何生成一个numpy数组的随机数?

有一个numpy array像下面的 numpy 数组。我想integer为特定的 numpy 数组生成一个随机数string。我该如何完成这项任务?


# input

X = np.array([['a', 'p', 'b'],

              ['a', 'p', 'd'],

              ['c', 'p', 'd'],

              ['c', 'p', 'e'],

              ['c', 'p', 'f']])


# output

X = np.array([[100, 5, 101],

              [100, 5, 103],

              [102, 5, 103],

              [102, 5, 104],

              [102, 5, 105]])


慕尼黑8549860
浏览 82回答 1
1回答

缥缈止盈

当您想为数组的每个唯一值分配一个随机整数值时,您可以将唯一值映射到字典。更新我们需要检查随机数是否用作映射器的值。from random import randintimport numpy as np# inputX = np.array([['a', 'p', 'b'],              ['a', 'p', 'd'],              ['c', 'p', 'd'],              ['c', 'p', 'e'],              ['c', 'p', 'f']])mapper = {}output = []for ar in X:    temp = []    for i in range(len(ar)):        if ar[i] not in mapper:            random_number = None            while True:                random_number = randint(1,120)                if random_number not in mapper.values():                    break            mapper[ar[i]] = random_number        temp.append(mapper[ar[i]])    output.append(temp)output = np.array(output)print(output)输出:[[  7  86 120] [  7  86  14] [ 51  86  14] [ 51  86 113] [ 51  86  54]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python