如何为数组px中每个唯一值匹配对应随机py值并生成状态标记
解决方案
没问题,我帮你调整代码来实现这个需求!核心思路是先给每个唯一的px值分配专属的随机数,再把这个映射关系应用到整个px数组上,这样相同的px就会对应同一个py值啦。
你可以试试这段调整后的代码:
import pandas as pd import random import numpy as np px = np.array([0.360617,0.360617,0.360617,0.989699,0.989699,0.989699,-1.020482]) # 获取px中的所有唯一值 unique_px_values = np.unique(px) # 为每个唯一值生成专属的0-1随机数,构建映射字典 px_py_mapping = {value: np.random.uniform(low=0, high=1) for value in unique_px_values} # 将原px数组的每个元素映射到对应的随机数,得到py数组 py = np.array([px_py_mapping[val] for val in px]) # 生成最终的DataFrame df = pd.DataFrame({'px': px, 'py': py, 'status': px >= py})
代码说明:
- 第一步用
np.unique(px)提取出px里的所有唯一值,避免重复生成随机数; - 第二步通过字典推导式,给每个唯一值绑定一个专属的随机数;
- 第三步遍历原px数组,把每个元素替换成字典中对应的随机数,这样相同的px就会对应同一个py;
- 最后生成的DataFrame里,相同px的行会共享同一个py值,
status列的判断也会基于这个专属随机数。
内容的提问来源于stack exchange,提问作者JAG2024
相关产品推荐
相关产品推荐

