新聞中心
今天小編為大家?guī)?lái)在numpy中如何設(shè)置空值的辦法,下面一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)主營(yíng)靈壽網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),靈壽h5微信小程序開(kāi)發(fā)搭建,靈壽網(wǎng)站營(yíng)銷推廣歡迎靈壽等地區(qū)企業(yè)咨詢
我不明白為什么我會(huì)以0而不是不滿足條件的空值或空值結(jié)尾... b是一個(gè)用0和1值填充的numpy數(shù)組,c是另一個(gè)完全填充的numpy數(shù)組。
所有陣列均為71x71x166
a = np.empty(((71,71,166))) d = np.empty(((71,71,166))) for indexes, value in np.ndenumerate(b): i,j,k = indexes a[i,j,k] = np.where(b[i,j,k] == 1, c[i,j,k], d[i,j,k])
我想最后得到一個(gè)數(shù)組,該數(shù)組僅具有滿足條件的值,并且在其他任何地方都為空,而不會(huì)改變其形狀。
要求澄清的全部澄清問(wèn)題:我從一個(gè)帶有形狀的浮動(dòng)填充數(shù)組開(kāi)始(71,71,166)我根據(jù)應(yīng)用于float數(shù)組的cutoff創(chuàng)建一個(gè)int數(shù)組,基本上創(chuàng)建了一些bin,大致標(biāo)出了數(shù)組中的10個(gè)區(qū)域,其間有0個(gè)值我想要最終得到的是一個(gè)具有形狀(71,71,166)的數(shù)組,其具有特定陣列方向的平均值(假設(shè)垂直方向,如果您將3D數(shù)組視為3D立方體)某個(gè)“bin” …所以我試圖循環(huán)遍歷“bins”b == 1,b == 2等,在滿足條件的情況下對(duì)float進(jìn)行采樣但在其他地方為null,這樣我就可以取平均值,然后在最后重新組合成一個(gè)數(shù)組循環(huán)….不確定我是否讓自己明白了.我正在使用np.where并使用索引,因?yàn)楫?dāng)我嘗試執(zhí)行此操作時(shí)我仍然會(huì)遇到錯(cuò)誤,盡管它感覺(jué)非常低效.
考慮這個(gè)例子:
import numpy as np data = np.random.random((4,3)) mask = np.random.random_integers(0,1,(4,3)) data[mask==0] = np.NaN
當(dāng)掩碼為0時(shí),數(shù)據(jù)將設(shè)置為nan.當(dāng)然,您可以使用任何類型的條件,或者對(duì)b中的不同值執(zhí)行不同的操作.
要?jiǎng)h除除特定bin之外的所有內(nèi)容,請(qǐng)嘗試以下操作:
c[b!=1] = np.NaN
因此,要復(fù)制特定bin中的所有內(nèi)容:
a = np.copy(c) a[b!=1] == np.NaN
要獲得bin中所有內(nèi)容的平均值:
np.mean(c[b==1])
所以也許這可能會(huì)做你想要的(其中bin是bin值的列表):
a = np.empty(c.shape) a[b==0] = np.NaN for bin in bins: a[b==bin] = np.mean(c[b==bin])
學(xué)會(huì)的小伙伴一定要勤加練習(xí)哦~更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
分享文章:創(chuàng)新互聯(lián)Python教程:Python基礎(chǔ):numpy中空值怎樣設(shè)置
本文來(lái)源:http://www.fisionsoft.com.cn/article/dhpgojp.html


咨詢
建站咨詢
