我有三个包含角度值的列表:
import pandas as pd
import random
# Example data
angles1 = [1,1,5,6,4]
angles2 = [3,2,5,4,9]
angles3 = [6,9,8,2,1]
这三个列表的角度值相互依赖。这就是相关系数显示给我的
# Calculate the correlation coefficient
angles = list(zip(angles1,angles2,angles3))
anglesData = pd.DataFrame(angles,columns=['angle 1','angle 2','angle 3'])
print(anglesData.corr())
这些是计算出的系数(结果(:
angle 1 angle 2 angle 3
angle 1 1.000000 0.474267 -0.530212
angle 2 0.474267 1.000000 -0.690651
angle 3 -0.530212 -0.690651 1.000000
我想随机化角度1、角度2和角度3的值。我可以很容易地随机化angle1值:
# Get a random number from angles1
randomAngle1 = random.choice(angles1)
print(randomAngle1)
问题是,我不能简单地随机化angle2和angle3的值,因为它们取决于angle1的值。他们也相互依赖。
如何随机化angle1、angle2和angle3的值,这是有意义的,并且不忽略相关性?
任何形式的反馈都是值得赞赏的。谢谢
如果anglesData
的角度彼此对应,如果它们在同一行(并且不应分开(,那么您可以简单地选择数据帧的随机行(它将是一个仅由1个选定行组成的新数据帧(,然后您可以将其转换为列表:
anglesData.sample().to_numpy().flatten().tolist()
您还可以打乱数据帧的行:
anglesData.sample(frac=1)