numpy如何刪除矩陣中的部分?jǐn)?shù)據(jù)numpy.delete
numpy刪除矩陣中的部分?jǐn)?shù)據(jù)
numpy.delete(arr ,id ,axis=None)
功能:
(1)如果輸入了axis,則把數(shù)組arr在axis指定的維度進(jìn)行切片,并刪除掉id指定下標(biāo)的元素
(2)如果沒(méi)有輸入axis,則把數(shù)組arr扁平化,并刪除掉id指定下標(biāo)的元素
示例:
import numpy as np
mat= np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print('mat=',mat)
print('刪除第0行:',np.delete(mat,0,axis=0))
print('刪除第0列:',np.delete(mat,0,axis=1))
結(jié)果:
mat= [[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
刪除第0行: [[ 5 6 7 8]
[ 9 10 11 12]]
刪除第0列: [[ 2 3 4]
[ 6 7 8]
[10 11 12]]
從numpy數(shù)組中隨機(jī)刪除一部分?jǐn)?shù)據(jù)
可以使用numpy中的random.choice函數(shù)隨機(jī)選擇數(shù)組的下標(biāo)
numpy.random.choice(a, size=None, replace=True, p=None) #a為一維數(shù)組或int值,為一維數(shù)組時(shí)會(huì)從該數(shù)組中隨機(jī)選擇元素,為int值時(shí)會(huì)先生成一個(gè)np.arange(a)的數(shù)組,然后從中隨機(jī)選擇元素 #size為int值,為選擇元素的個(gè)數(shù) #replace默認(rèn)為True,意思是隨機(jī)選擇出的元素還會(huì)放回樣本集中,即生成的數(shù)列中可能存在相同的元素,為False時(shí)就不會(huì)出現(xiàn) #p為樣本選擇的概率,默認(rèn)為一致分布
一維例子,二維直接這樣也沒(méi)有問(wèn)題
import numpy as np
data=np.random.random(size=10)
data
Out[4]:
array([ 0.21575642, 0.30620622, 0.01454852, 0.46253994, 0.11222712,
0.32893411, 0.11040516, 0.51010326, 0.83162364, 0.84285834])
index_1=np.random.choice(data.shape[0],4,replace=False)
index_1
Out[6]: array([1, 4, 2, 3])
data1=data[index_1]
data1
Out[8]: array([ 0.30620622, 0.11222712, 0.01454852, 0.46253994])然后我們?nèi)绾潍@得剩下的數(shù)組中的內(nèi)容呢,我們可以先生成原數(shù)組所有的下標(biāo),然后用np.delete函數(shù)刪除之前隨機(jī)生成的下標(biāo)數(shù)組
# numpy.delete(arr,obj,axis=None)
# arr:輸入向量
# obj:表明哪一個(gè)子向量應(yīng)該被移除??梢詾檎麛?shù)或一個(gè)int型的向量
# axis:表明刪除哪個(gè)軸的子向量,若默認(rèn),則返回一個(gè)被拉平的向量
index_2=np.arange(data.shape[0])
index_2
Out[10]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
index_2=np.delete(index_2,index_1)
index_2
Out[12]: array([0, 5, 6, 7, 8, 9])
data2=data[index_2]
data2
Out[14]:
array([ 0.21575642, 0.32893411, 0.11040516, 0.51010326, 0.83162364,
0.84285834])總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)
這篇文章主要為大家介紹了python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫(kù)
下面開(kāi)始albumenations的正式介紹,在這里我強(qiáng)烈建議英語(yǔ)基礎(chǔ)還好的讀者去官方網(wǎng)站跟著教程一步步學(xué)習(xí),而這里的內(nèi)容主要是我自己的一個(gè)總結(jié)以及方便英語(yǔ)能力較弱的讀者學(xué)習(xí)2021-09-09
python使用datetime模塊計(jì)算各種時(shí)間間隔的方法
這篇文章主要介紹了python使用datetime模塊計(jì)算各種時(shí)間間隔的方法,實(shí)例分析了Python使用datetime模塊進(jìn)行各種常用的時(shí)間操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
如何獲取Python簡(jiǎn)單for循環(huán)索引
這篇文章主要介紹了如何獲取Python簡(jiǎn)單for循環(huán)索引,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
使用Python一鍵實(shí)現(xiàn)屏幕監(jiān)控軟件
這篇文章主要為大家詳細(xì)介紹了如何使用Python一鍵實(shí)現(xiàn)屏幕監(jiān)控軟件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-08-08

