日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 随机选择list或numpy.ndarray中n个元素

發布時間:2024/3/12 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 随机选择list或numpy.ndarray中n个元素 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python 隨機選擇list或numpy.ndarray中n個元素

1. 從一個list中隨機選取一個元素

  • random.choice(data)
import random data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] random.choice(data) # 隨機選取一個元素

2. 從一個list中隨機選取多個元素

import random data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] sample_num = 5 random.sample(data, sample_num) # 結果['a', 'd', 'b', 'f', 'c'],每次運行結果不同。

3. 從data和label中隨機選取多個元素

在制作數據集時,可能會有只用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]

4. 從numpy.ndarray中隨機選取多個元素

承接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])

參考
python 隨機選取列表中的元素 https://blog.csdn.net/zzc15806/article/details/84875070
感謝以上大大的博客!

總結

以上是生活随笔為你收集整理的python 随机选择list或numpy.ndarray中n个元素的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。