python 隨機選取n個元素

2021-10-09 15:52:21 字數 1698 閱讀 3204

參考鏈結 

import random

data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

random.choice(data) # 隨機選取乙個元素

import random

data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

sample_num = 5

random.sample(data, sample_num) # 結果['a', 'd', 'b', 'f', 'c'],每次執行結果不同。

在製作資料集時,可能會有只用50%的資料的要求,所以,我們從原資料集中隨機抽取30%的資料,這還要求了,datalabel是對應的。接下來,講講我的做法。建立乙個索引list,在索引list中選取n個索引,根據這些索引將data和label的資料提取出來。

import random

data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

label = [0, 1, 2, 3, 4, 5, 6, 7]

sample_num = int(0.5 * len(data)) # 假設取50%的資料

sample_list = [i for i in range(len(data))] # [0, 1, 2, 3, 4, 5, 6, 7]

sample_list = random.sample(sample_list, sample_num) #隨機選取出了 [3, 4, 2, 0]

sample_data = [data[i] for i in sample_list] # ['d', 'e', 'c', 'a']

sample_label = [label[i] for i in label] # [3, 4, 2, 0]

承接3. 只是datalabelnumpy.ndarray物件如何用sample_list來取出呢?

了解numpy.ndarray切片的同學們肯定都知道啦,這裡我簡單寫一下。

import numpy as np

data = np.array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[12, 13, 14, 15]]) # shape:(4,4)

label = np.array([1,2,3,4]) # shape:(4,)

sample_num = int(0.5 * len(data)) # 假設取50%的資料

sample_list = [i for i in range(len(data))] # [0, 1, 2, 3]

sample_list = random.sample(sample_list, sample_num) # [1, 2]

data = data[sample_list,:] # array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]])

label = label[sample_list] # array([2, 3])

在N個元素中選取前M個元素

import org.junit.test public class solution int arr maxarr arr,3 for int i 0 i 5 i 問題 在n個元素中選取前m個元素 思路 1 建立長度為m的陣列,作為最小堆 或則arr 0,m 1 構建小頂堆 3 先往最小堆中存入一...

從python容器中隨機選取元素

1 1.使用python random模組的choice方法隨機選擇某個元素 2import random 34 foo a b c d e 5from random import choice67 print choice foo 89 2.使用python random模組的sample函式從列...

從 N 個元素中選取 M 個元素, 有多少種組合

演算法 從 n 個數字中選取 m 個,列印所有可能組合 使用乙個輔助陣列 aux 1.m 用來記錄 input 1.n 中被選中元素的索引 比如 input i 被選中,那麼中會有一項 aux i 從後向前計算 基本思想是,從 n 個元素中選取 m 個,首先選取第 m 個,然後在從剩下的選取 m 1...