參考鏈結
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%的資料,這還要求了,data
和label
是對應的。接下來,講講我的做法。建立乙個索引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. 只是data
和label
是numpy.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...