python - 如何生成一个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]])
解决方案
由于您想为数组的每个唯一值分配一个随机整数值,您可以将唯一值映射到字典。
更新
我们需要创建检查随机数是否用作映射器的值。
from random import randint
import numpy as np
# input
X = 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]]
推荐阅读
- twitter-bootstrap - 传单地图无法在引导程序 4 模式中正确呈现
- excel - 修改字符串变量
- swift - TableView 在使用两个嵌套的 alamofire 请求滚动之前不显示数据
- c# - 将 SQL Server 登录保存在代码中(C#)
- javascript - 从 javascript 停止 npm 浏览器应用程序
- django - Shopify graphQL 查询
- python-2.7 - pygsheets set_dataframe 未被识别
- android - dlopen 失败有文本重定位
- png - 理解 IDAT,阅读 DEFLATE 的动态霍夫曼树
- sql-server - 需要一种编程方式来获取 SQL Server 内置函数的名称、参数和返回类型