実現したいこと
1~15の数字の中から5つを選びそれを10回繰り返す
(5つの数の抽出で重複しない)
プログラムでその中で抽出される数字に「重み(weights = 重み)」をもたせるという事をやりたいです.
外部のCSV(下記のdata-1.csv)から重みの元となるもの参照読込し、計算、結果を出力(data-2.csv)
該当のソースコード
python
1#!/usr/bin/env python 2# -*- coding: utf8 -*- 3 4import random 5import csv 6import numpy as np 7import pandas as pd 8 9for s in range(10): 10 11 def rand_ints_nodup(a, b, k): 12 ns = [] 13 while len(ns) < k: 14 n = random.randint(a, b) 15 if not n in ns: 16 ns.append(n) 17 return ns 18 19 with open('data-2.csv', 'a') as f: 20 21# 最小 ,最大, 範囲 22 print(*sorted(rand_ints_nodup(1, 15, 5)), sep=',',file=f) 23
試したこと
ただ単純に1~15の中から5つを重複しないでCSV出力(上記のプログラム)はできたのですが
それに「weights = 重み」という概念を乗せて出力する記述の仕方がわかりません
ネットの情報を調べると
https://techacademy.jp/magazine/33531
Pythonのrandom.choices関数を利用してランダム値に重み付けする方法を現役エンジニアが解説【初心者向け】
から
random.choices関数の所までは行けるのですが考え方や実装方法等
なんとかお力添え頂けると幸いです。
補足情報(FW/ツールのバージョンなど)
