最大で100までの数のリストを返そうとしています。11回。同じ関数内で関数の結果を複数回返す
numpyのランダムな一様分布から生成される3つの数があります。
if文を追加して、各リスト(合計11個)の第1、第2、第3の数字がピアソン相関係数> 0.99であるかどうかを確認します。私は、各コンポーネントをプロットした場合にはそう
import math
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
c1_high = 98
c1_low = 75
c2_high = 15
c2_low = 6
c3_high = 8
c3_low = 2
def mix_gen():
while True:
c1 = np.random.uniform(c1_low, c1_high)
c2 = np.random.uniform(c2_low, c2_high)
c3 = np.random.uniform(c3_low, c3_high)
tot = c1+c2+c3
if 99.99<= tot <=100.01:
comp_list = [c1,c2,c3]
return comp_list
my_list = mix_gen()
print(my_list)
:現時点では
が、私は唯一の100
に等しい合計を持つ数字の1つのリストを生成することができる午前私は、コードを次しています..例えばc1 ...私は> 0.99のR^2値を得るでしょう。
私は同じ関数内で複数のリストを生成するにこだわっています。私はこれが関数外で行うことができることを知っています。[mix_gen()for _ range(11)] ..を使用していますが、11リストを返す前にpeasron corr coeffの追加チェックが必要なので、これは機能しません。
目的:
次の値でデータフレームを返すために:
C1 C2 C3 sum
1 70 20 10 100
2 ..
3 ..
4 ..
5 ..
6 ..
7 ..
8 ..
9 ..
10 ..
11 90
R^2 1 1 1
counte 11個のリストをコンテナに追加する前に、 'if'の中にrフラグを入れ、' while'から返さないようにしてください。 – joaquin
'yield'を探しているかもしれません。 –