2

5列のテキストファイルがあります。最初の列には年(2011年から2040年)、2番目にはTmax、3番目にはTmin、4番目にはPrecip、5番目にはSolarが30年間あります。最初の列(年)を10回シャッフルし、残りの列に対応する元の値が含まれるPythonコードを記述します。つまり、年の列を10回だけシャッフルして、1年目に対応するものが含まれるようにします。値。

4

2 に答える 2

1

テキストを行のリストとして読み取ります。各行は列のリストまたはタプルです。モジュールはこれcsvに役立つ場合があります。

次に、行をシャッフルします。モジュールには、randomと呼ばれる関数がありますshuffle

編集:

入力形式がCSV(コンマ区切り値)であると仮定します。

import csv
import random

input_path = r"path\to\input"
output_path = r"path\to\output"

with open(input_path, "rb") as file:
    rows = list(csv.reader(file, delimiter=","))

random.shuffle(rows)

with open(output_path, "wb") as file:
    csv.writer(file, delimiter=",").writerows(rows)
于 2012-08-27T23:39:00.840 に答える
0

NumPyに精通していますか?データを大量に取得したら、ndarray多くの一時的なものを作成するというハードルなしに、列の順序を維持しながら行をシャッフルするのは簡単です。

np.genfromtxtデータファイルを読み取り、ndarray異なる名前のフィールドでを作成するような関数を使用できます。np.random.shuffle次に、この関数を使用して行を再編成できます。

于 2012-08-28T00:04:29.740 に答える