用numpy如何創(chuàng)建一個(gè)空數(shù)組?

? ?? 作者:luanhz
? ? ?來(lái)源:小數(shù)志
導(dǎo)讀
最近在用numpy過(guò)程中,總會(huì)不自覺(jué)的需要?jiǎng)?chuàng)建空數(shù)組,雖然這并不是一個(gè)明智的做法,但終究是可能存在這種需求的。本文簡(jiǎn)單記錄3種用numpy生成空數(shù)組的方式。

00?關(guān)于np.empty
首先,numpy有一個(gè)"空數(shù)組"函數(shù):np.empty(),雖然名字叫empty,但結(jié)果可能并不是我們想要的那種:

那么,如果我們需要?jiǎng)?chuàng)建一個(gè)沒(méi)有任何值的數(shù)組呢?這里以生成0行3列的空數(shù)組為例,筆者想到了3種方案。。
01?numpy指定形狀為0
實(shí)際上,empty生成的數(shù)組當(dāng)然可以為空,只要我們指定了相應(yīng)的形狀。例如,如果我們傳入數(shù)組的形狀參數(shù)為(0,3),則可以生成目標(biāo)空數(shù)組:
所以,生成的數(shù)組是否為空,不在于你用的是不是empty,而在于傳入的形狀參數(shù)。當(dāng)然, 這里的empty換成ones或者zeros也都可以,只要形狀是(0, 3)即可。02?利用空列表創(chuàng)建
初始化numpy數(shù)組的一種方式是由列表創(chuàng)建,那么當(dāng)我們傳入的列表是空列表時(shí)即可創(chuàng)建空數(shù)組。特別的,為了創(chuàng)建指定列數(shù)的空列表,我們需要傳入指定個(gè)數(shù)的嵌套空列表,然后轉(zhuǎn)置即可。
03?利用pandas轉(zhuǎn)換生成
numpy和pandas是一對(duì)好搭檔,常常需要對(duì)二者數(shù)據(jù)進(jìn)行轉(zhuǎn)換,在創(chuàng)建空數(shù)組時(shí)自然也可以。為了創(chuàng)建一個(gè)空數(shù)組,我們可以首先考慮先創(chuàng)建一個(gè)空的DataFrame,然后由其轉(zhuǎn)換為numpy對(duì)象即實(shí)現(xiàn)了創(chuàng)建空數(shù)組。首先,我們創(chuàng)建一個(gè)僅有列名、而沒(méi)有索引和值的空DataFrame:
進(jìn)而,可由該DataFrame對(duì)象轉(zhuǎn)化為空數(shù)組:
可能多數(shù)情況下并不需要?jiǎng)?chuàng)建空數(shù)組,甚至存在更好的替代辦法,但就事論事的講,這些也都不失為一個(gè)豐富numpy姿勢(shì)的小技巧。

◆?◆?◆ ?◆?◆
長(zhǎng)按二維碼關(guān)注我們
數(shù)據(jù)森麟公眾號(hào)的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關(guān)于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關(guān)內(nèi)容,還沒(méi)有加入的小伙伴可以掃描下方管理員二維碼,進(jìn)群前一定要關(guān)注公眾號(hào)奧,關(guān)注后讓管理員幫忙拉進(jìn)群,期待大家的加入。
管理員二維碼:
評(píng)論
圖片
表情
