這篇文章將為大家詳細(xì)講解有關(guān)Python之numpy中空值如何設(shè)置,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站建設(shè)、做網(wǎng)站的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)絡(luò)公司,成都創(chuàng)新互聯(lián)依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、成都全網(wǎng)營銷推廣及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
我不明白為什么我會以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ù)組僅具有滿足條件的值,并且在其他任何地方都為空,而不會改變其形狀。
要求澄清的全部澄清問題:我從一個(gè)帶有形狀的浮動(dòng)填充數(shù)組開始(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等,在滿足條件的情況下對float進(jìn)行采樣但在其他地方為null,這樣我就可以取平均值,然后在最后重新組合成一個(gè)數(shù)組循環(huán)….不確定我是否讓自己明白了.我正在使用np.where并使用索引,因?yàn)楫?dāng)我嘗試執(zhí)行此操作時(shí)我仍然會遇到錯(cuò)誤,盡管它感覺非常低效.
考慮這個(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)然,您可以使用任何類型的條件,或者對b中的不同值執(zhí)行不同的操作.
要?jiǎng)h除除特定bin之外的所有內(nèi)容,請嘗試以下操作:
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])
所以也許這可能會做你想要的(其中bin是bin值的列表):
a = np.empty(c.shape) a[b==0] = np.NaN for bin in bins: a[b==bin] = np.mean(c[b==bin])
關(guān)于Python之numpy中空值如何設(shè)置就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。